X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=servers%2Fslapd%2Fentry.c;h=67cc85833ec6445cc3ff83c174e4574833a25e5a;hb=a5e6fa0d1ce8a43ec96e88de73297ad2103eba2e;hp=726eaf675fb599d503f907d3799216b2b1a8f99f;hpb=5c6ad6c5b160c26108bfd0c1fa3c3f27c4d6c8d8;p=openldap diff --git a/servers/slapd/entry.c b/servers/slapd/entry.c index 726eaf675f..67cc85833e 100644 --- a/servers/slapd/entry.c +++ b/servers/slapd/entry.c @@ -47,8 +47,6 @@ str2entry( char *s ) s ? s : "NULL", 0, 0 ); e = (Entry *) ch_calloc( 1, sizeof(Entry) ); - /* initialize reader/writer lock */ - entry_rdwr_init(e); /* check to see if there's an id included */ next = s; @@ -58,10 +56,14 @@ str2entry( char *s ) Debug( LDAP_DEBUG_TRACE, "<= str2entry NULL (missing newline after id)\n", 0, 0, 0 ); + free( e ); return( NULL ); } } + /* initialize reader/writer lock */ + entry_rdwr_init(e); + /* dn + attributes */ e->e_attrs = NULL; vals[0] = &bval; @@ -101,6 +103,7 @@ str2entry( char *s ) != 0 ) { Debug( LDAP_DEBUG_TRACE, "<= str2entry NULL (attr_merge)\n", 0, 0, 0 ); + entry_free( e ); return( NULL ); } nvals++;