From b61e66871d105bd43f3dc74020a13a02106959d9 Mon Sep 17 00:00:00 2001 From: Nadezhda Ivanova Date: Wed, 22 Nov 2017 13:44:07 +0200 Subject: [PATCH] ITS#8841 Fix an assertion error in back-meta when network interface is unavailable Because an API error code was assigned to sr_err, on network error back-meta would cause an assert error at result.c: 830 assert( !LDAP_API_ERROR( rs->sr_err ) ); --- servers/slapd/back-meta/search.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c index eef687bc6c..0cbb69bdee 100644 --- a/servers/slapd/back-meta/search.c +++ b/servers/slapd/back-meta/search.c @@ -344,12 +344,15 @@ down:; default: other:; + /* convert rc to the correct LDAP error and send it back to the client: + assing the error to rs, so we can use it as argument to slap_map_api2result + and then assign the output back to rs->sr_err */ rs->sr_err = rc; - rc = slap_map_api2result( rs ); + rs->sr_err = slap_map_api2result( rs ); ldap_pvt_thread_mutex_lock( &mi->mi_conninfo.lai_mutex ); meta_clear_one_candidate( op, mc, candidate ); - candidates[ candidate ].sr_err = rc; + candidates[ candidate ].sr_err = rs->sr_err; if ( META_BACK_ONERR_STOP( mi ) ) { LDAP_BACK_CONN_TAINTED_SET( mc ); meta_back_release_conn_lock( mi, mc, 0 ); -- 2.47.2