X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fentry.c;h=5de991f4c45991f321e2fb2ca5f180007ddb13bc;hb=fc49135a367e90d8fccbe9ad43c07c61340a74c7;hp=5e7ee6d31b73ab997e0c2cc535cfcc814255478d;hpb=e002f7adb3cc38a31da59a14dc67c5715f0b0993;p=openldap diff --git a/servers/slapd/entry.c b/servers/slapd/entry.c index 5e7ee6d31b..5de991f4c4 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++;