From: Quanah Gibson-Mount Date: Sat, 16 Dec 2006 01:38:06 +0000 (+0000) Subject: send_search_reference should propagate errors X-Git-Tag: OPENLDAP_REL_ENG_2_3_31~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4fffe7a86f9f3f60656d74b6d62ce515f2d4487f;p=thirdparty%2Fopenldap.git send_search_reference should propagate errors --- diff --git a/servers/slapd/result.c b/servers/slapd/result.c index c5e17337b5..a766356c47 100644 --- a/servers/slapd/result.c +++ b/servers/slapd/result.c @@ -1341,11 +1341,15 @@ slap_send_search_reference( Operation *op, SlapReply *rs ) bytes = send_ldap_ber( op->o_conn, ber ); ber_free_buf( ber ); - ldap_pvt_thread_mutex_lock( &slap_counters.sc_sent_mutex ); - ldap_pvt_mp_add_ulong( slap_counters.sc_bytes, (unsigned long)bytes ); - ldap_pvt_mp_add_ulong( slap_counters.sc_refs, 1 ); - ldap_pvt_mp_add_ulong( slap_counters.sc_pdu, 1 ); - ldap_pvt_thread_mutex_unlock( &slap_counters.sc_sent_mutex ); + if ( bytes < 0 ) { + rc = LDAP_UNAVAILABLE; + } else { + ldap_pvt_thread_mutex_lock( &slap_counters.sc_sent_mutex ); + ldap_pvt_mp_add_ulong( slap_counters.sc_bytes, (unsigned long)bytes ); + ldap_pvt_mp_add_ulong( slap_counters.sc_refs, 1 ); + ldap_pvt_mp_add_ulong( slap_counters.sc_pdu, 1 ); + ldap_pvt_thread_mutex_unlock( &slap_counters.sc_sent_mutex ); + } #ifdef LDAP_CONNECTIONLESS } #endif