From: Kurt Zeilenga Date: Wed, 3 Feb 1999 17:39:07 +0000 (+0000) Subject: Import getfilter() double free() bug fix from -devel X-Git-Tag: OPENLDAP_REL_ENG_1_2_BETA2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ed4e8b3dfdb3cd1246a737bcadeae0e241553b8;p=thirdparty%2Fopenldap.git Import getfilter() double free() bug fix from -devel --- diff --git a/CHANGES b/CHANGES index 5921dce114..c66645f4b6 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,8 @@ Changes included in OpenLDAP 1.2 Fixed -lldap/ldap_init() bug Fixed -lldap/ldap_sort_entries() zero entries bug Fixed slapd/slap_op memory/lock leak bug + Fixed slapd/back-ldbm IDL delete from ALLIDS bug + Fixed slapd/getfilter double free() bug Updated slapd/back-ldbm/id2children has_children logging Updated slapd/back-ldbm IDList handling Updated ldap_open(3) man page to note ldap_init() is preferred. diff --git a/servers/slapd/filter.c b/servers/slapd/filter.c index 5f4c686571..dff90b0446 100644 --- a/servers/slapd/filter.c +++ b/servers/slapd/filter.c @@ -47,7 +47,6 @@ get_filter( Connection *conn, BerElement *ber, Filter **filt, char **fstr ) */ f = (Filter *) ch_malloc( sizeof(Filter) ); - *filt = f; f->f_next = NULL; err = 0; @@ -175,6 +174,8 @@ get_filter( Connection *conn, BerElement *ber, Filter **filt, char **fstr ) if ( *fstr != NULL ) { free( *fstr ); } + } else { + *filt = f; } Debug( LDAP_DEBUG_FILTER, "end get_filter %d\n", err, 0, 0 );