From e4054ba2cd284ff07bc675462de4603e4fc8d8d0 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Sat, 9 Feb 2008 02:21:19 +0000 Subject: [PATCH] ITS#5304 --- CHANGES | 1 + libraries/libldap/extended.c | 13 ++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index f2b98d85b7..e505f46fcb 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ OpenLDAP 2.4 Change Log OpenLDAP 2.4.8 Engineering Fixed ldapmodify verbose logging (ITS#5247) + Fixed libldap extended decoding (ITS#5304) Fixed libldap filter abort (ITS#5300) Fixed libldap ldap_parse_sasl_bind_result (ITS#5263) Fixed libldap search timeout crash (ITS#5291) diff --git a/libraries/libldap/extended.c b/libraries/libldap/extended.c index 5a6efda9f1..1a2fc2a65a 100644 --- a/libraries/libldap/extended.c +++ b/libraries/libldap/extended.c @@ -291,7 +291,6 @@ ldap_parse_intermediate ( int freeit ) { BerElement *ber; - ber_tag_t rc; ber_tag_t tag; ber_len_t len; struct berval *resdata; @@ -324,9 +323,9 @@ ldap_parse_intermediate ( return ld->ld_errno; } - rc = ber_scanf( ber, "{" /*}*/ ); + tag = ber_scanf( ber, "{" /*}*/ ); - if( rc == LBER_ERROR ) { + if( tag == LBER_ERROR ) { ld->ld_errno = LDAP_DECODING_ERROR; ber_free( ber, 0 ); return ld->ld_errno; @@ -367,16 +366,16 @@ ldap_parse_intermediate ( } if ( serverctrls == NULL ) { - rc = LDAP_SUCCESS; + ld->ld_errno = LDAP_SUCCESS; goto free_and_return; } if ( ber_scanf( ber, /*{*/ "}" ) == LBER_ERROR ) { - rc = LDAP_DECODING_ERROR; + ld->ld_errno = LDAP_DECODING_ERROR; goto free_and_return; } - rc = ldap_pvt_get_controls( ber, serverctrls ); + ld->ld_errno = ldap_pvt_get_controls( ber, serverctrls ); free_and_return: ber_free( ber, 0 ); @@ -397,6 +396,6 @@ free_and_return: ldap_msgfree( res ); } - return LDAP_SUCCESS; + return ld->ld_errno; } -- 2.39.5