Author: rmeggins
Update of /cvs/dirsec/ldapserver/ldap/servers/plugins/bitwise In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv15672/ldapserver/ldap/servers/plugins/bitwise
Modified Files: bitwise.c Log Message: Resolves: bug 428765 Bug Description: leak in bitwise plugin Reviewed by: nhosoi (Thanks!) Branch: HEAD Fix Description: The bitwise plugin should first check to make sure the requested OID is one that it can handle. Platforms tested: RHEL5, Fedora 8, Fedora 9 Flag Day: no Doc impact: no
Index: bitwise.c =================================================================== RCS file: /cvs/dirsec/ldapserver/ldap/servers/plugins/bitwise/bitwise.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- bitwise.c 18 Oct 2007 00:08:28 -0000 1.2 +++ bitwise.c 14 Jul 2008 23:31:33 -0000 1.3 @@ -167,14 +167,18 @@ !slapi_pblock_get (pb, SLAPI_PLUGIN_MR_TYPE, &mrTYPE) && mrTYPE != NULL && !slapi_pblock_get (pb, SLAPI_PLUGIN_MR_VALUE, &mrVALUE) && mrVALUE != NULL) {
- struct bitwise_match_cb *bmc = new_bitwise_match_cb(mrTYPE, mrVALUE); - slapi_pblock_set (pb, SLAPI_PLUGIN_OBJECT, bmc); - slapi_pblock_set (pb, SLAPI_PLUGIN_DESTROY_FN, (void*)bitwise_filter_destroy); + struct bitwise_match_cb *bmc = NULL; if (strcmp(mrOID, "1.2.840.113556.1.4.803") == 0) { slapi_pblock_set (pb, SLAPI_PLUGIN_MR_FILTER_MATCH_FN, (void*)bitwise_filter_match_and); } else if (strcmp(mrOID, "1.2.840.113556.1.4.804") == 0) { slapi_pblock_set (pb, SLAPI_PLUGIN_MR_FILTER_MATCH_FN, (void*)bitwise_filter_match_or); + } else { /* this oid not handled by this plugin */ + LDAPDebug (LDAP_DEBUG_FILTER, "=> bitwise_filter_create OID (%s) not handled\n", mrOID, 0, 0); + return rc; } + bmc = new_bitwise_match_cb(mrTYPE, mrVALUE); + slapi_pblock_set (pb, SLAPI_PLUGIN_OBJECT, bmc); + slapi_pblock_set (pb, SLAPI_PLUGIN_DESTROY_FN, (void*)bitwise_filter_destroy); rc = LDAP_SUCCESS; } else { LDAPDebug (LDAP_DEBUG_FILTER, "=> bitwise_filter_create missing parameter(s)\n", 0, 0, 0); @@ -190,9 +194,6 @@ bitwise_init (Slapi_PBlock* pb) { int rc; - int argc; - char** argv; - char* cfgpath;
rc = slapi_pblock_set (pb, SLAPI_PLUGIN_MR_FILTER_CREATE_FN, (void*)bitwise_filter_create); if ( rc == 0 ) {
389-commits@lists.fedoraproject.org