From: Kurt Zeilenga Date: Tue, 1 Feb 2000 01:22:06 +0000 (+0000) Subject: Didn't return after returning unknown critical control. X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~3207 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=37085306200b818a4212b5c0e76c2e0b753aa109;p=openldap Didn't return after returning unknown critical control. Noticed that abandon and unbind don't have control support... something for another day. --- diff --git a/servers/slapd/add.c b/servers/slapd/add.c index 8aafe94d55..8fef1b17b3 100644 --- a/servers/slapd/add.c +++ b/servers/slapd/add.c @@ -153,6 +153,8 @@ do_add( Connection *conn, Operation *op ) if( rc != LDAP_SUCCESS ) { send_ldap_result( conn, op, rc, NULL, NULL, NULL, NULL ); + entry_free( e ); + return rc; } if ( global_readonly || be->be_readonly ) { diff --git a/servers/slapd/bind.c b/servers/slapd/bind.c index 881c2c7733..096dc6b038 100644 --- a/servers/slapd/bind.c +++ b/servers/slapd/bind.c @@ -290,6 +290,7 @@ do_bind( if( rc != LDAP_SUCCESS ) { send_ldap_result( conn, op, rc, NULL, NULL, NULL, NULL ); + goto cleanup; } if ( be->be_bind ) { diff --git a/servers/slapd/compare.c b/servers/slapd/compare.c index 89bf6a0a1b..aa421fee0c 100644 --- a/servers/slapd/compare.c +++ b/servers/slapd/compare.c @@ -116,6 +116,7 @@ do_compare( if( rc != LDAP_SUCCESS ) { send_ldap_result( conn, op, rc, NULL, NULL, NULL, NULL ); + goto cleanup; } /* deref suffix alias if appropriate */ diff --git a/servers/slapd/delete.c b/servers/slapd/delete.c index 77b2f4098a..fbb532a416 100644 --- a/servers/slapd/delete.c +++ b/servers/slapd/delete.c @@ -92,6 +92,7 @@ do_delete( if( rc != LDAP_SUCCESS ) { send_ldap_result( conn, op, rc, NULL, NULL, NULL, NULL ); + goto cleanup; } if ( global_readonly || be->be_readonly ) { diff --git a/servers/slapd/modify.c b/servers/slapd/modify.c index a1cc074cec..f8392e8f03 100644 --- a/servers/slapd/modify.c +++ b/servers/slapd/modify.c @@ -184,6 +184,7 @@ do_modify( if( rc != LDAP_SUCCESS ) { send_ldap_result( conn, op, rc, NULL, NULL, NULL, NULL ); + goto cleanup; } if ( global_readonly || be->be_readonly ) { diff --git a/servers/slapd/modrdn.c b/servers/slapd/modrdn.c index 0467e54dc6..784fe795c5 100644 --- a/servers/slapd/modrdn.c +++ b/servers/slapd/modrdn.c @@ -178,6 +178,7 @@ do_modrdn( if( rc != LDAP_SUCCESS ) { send_ldap_result( conn, op, rc, NULL, NULL, NULL, NULL ); + goto cleanup; } if ( global_readonly || be->be_readonly ) { diff --git a/servers/slapd/search.c b/servers/slapd/search.c index 10e6d67b27..6fc3101c17 100644 --- a/servers/slapd/search.c +++ b/servers/slapd/search.c @@ -210,6 +210,7 @@ do_search( if( rc != LDAP_SUCCESS ) { send_ldap_result( conn, op, rc, NULL, NULL, NULL, NULL ); + goto return_results; } /* deref the base if needed */