]> git.sur5r.net Git - openldap/commitdiff
fix snacc buffer memory leak
authorSang Seok Lim <slim@openldap.org>
Mon, 20 Dec 2004 16:53:05 +0000 (16:53 +0000)
committerSang Seok Lim <slim@openldap.org>
Mon, 20 Dec 2004 16:53:05 +0000 (16:53 +0000)
contrib/slapd-modules/comp_match/Makefile
contrib/slapd-modules/comp_match/init.c

index 9327bef54d2f6ef97fa6b2447d49198709b43218..1c7730bda43a465dd221bf1897baa49566b9983f 100644 (file)
@@ -17,7 +17,7 @@
 
 topbuilddir = ../../../../build
 topsrcdir = ../../..
-snaccdir = /usr/local/snacc
+snaccdir = /home/slim/snacc
 
 LIBTOOL=$(topbuilddir)/libtool
 OPT=-g -O2 -DLDAP_COMPONENT
index d037306beac4d92c381224e1e811d5b6932fed23..577ce4a8de600c724bd88ba5773d93301172458c 100644 (file)
@@ -201,8 +201,8 @@ comp_convert_attr_to_comp LDAP_P (( Attribute* a, Syntax *syn, struct berval* bv
         int mode, bytesDecoded, size, rc;
         void* component;
        char* oid = a->a_desc->ad_type->sat_atype.at_oid ;
-        GenBuf* b;
-        ExpBuf* buf;
+        GenBuf* b = NULL;
+        ExpBuf* buf = NULL;
        OidDecoderMapping* odm;
        
        /* look for the decoder registered for the given attribute */
@@ -233,6 +233,7 @@ comp_convert_attr_to_comp LDAP_P (( Attribute* a, Syntax *syn, struct berval* bv
        }
 
        ExpBufFreeBuf( buf );
+       GenBufFreeBuf( b );
        if ( rc == -1 ) {
                ShutdownNibbleMemLocal ( a->a_comp_data->cd_mem_op );
                free ( a->a_comp_data );
@@ -273,6 +274,7 @@ comp_convert_assert_to_comp (
 
        rc = (*decoder)( mem_op, genBuf, csi, len, mode );
        ExpBufFreeBuf ( buf );
+       GenBufFreeBuf( genBuf );
 }
 
 int intToAscii( int value, char* buf ) {
@@ -662,20 +664,10 @@ comp_test_components( void* attr_nm, void* assert_nm, ComponentSyntaxInfo* csi_a
                        mode = DEC_ALLOC_MODE_2;
 
                        /* Try to decode with BER/DER decoder */
-#if 0
-                       rc =BDecComponentTop( odm->BER_Decode, attr_nm, b, 0,0, &contained_comp,&bytesDecoded, mode );
-#endif
                        rc = odm->BER_Decode ( attr_nm, b, (ComponentSyntaxInfo*)&contained_comp, &bytesDecoded, mode );
 
-#if 0
-                       if ( rc != LDAP_SUCCESS ) {
-                               /* If fails with BER/DER decoder, try with GSER */
-                               bytesDecoded = 0;
-                               BufResetInReadMode( b );
-                               rc = odm->GSER_decoder( attr_nm, b, contained_comp, &bytesDecoded, mode);
-                       }
-#endif
                        ExpBufFreeBuf( buf );
+                       GenBufFreeBuf( b );
 
                        if ( rc != LDAP_SUCCESS ) return LDAP_PROTOCOL_ERROR;