X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fextended.c;h=be35dda443bb96d1330acaad8408dd43fe9b85c6;hb=b898f1271db5021e1873e38e1498a99d9450b646;hp=644180de0ecf0662291c4363544fb5131e8f54f5;hpb=3c5068bc1fa84fc5daf1e50d4f1a929cec91b7e9;p=openldap diff --git a/libraries/libldap/extended.c b/libraries/libldap/extended.c index 644180de0e..be35dda443 100644 --- a/libraries/libldap/extended.c +++ b/libraries/libldap/extended.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2007 The OpenLDAP Foundation. + * Copyright 1998-2010 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -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; @@ -315,6 +314,7 @@ ldap_parse_intermediate ( if( retoidp != NULL ) *retoidp = NULL; if( retdatap != NULL ) *retdatap = NULL; + if( serverctrls != NULL ) *serverctrls = NULL; ber = ber_dup( res->lm_ber ); @@ -323,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; @@ -366,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 ); @@ -396,6 +396,6 @@ free_and_return: ldap_msgfree( res ); } - return LDAP_SUCCESS; + return ld->ld_errno; }