X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fdds.c;h=3c95eb4f3dac3f0f698afd6ebd4e5d93fc803848;hb=b905811d3c800b6f4031d541e424e5de871aa0c7;hp=6897054590e52a249235e7aa7c6fdcfcc623e536;hpb=d8eace75a7472731d78f61df01e648e8af8deee5;p=openldap diff --git a/libraries/libldap/dds.c b/libraries/libldap/dds.c index 6897054590..3c95eb4f3d 100644 --- a/libraries/libldap/dds.c +++ b/libraries/libldap/dds.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2005-2006 The OpenLDAP Foundation. + * Copyright 2005-2011 The OpenLDAP Foundation. * Portions Copyright 2005-2006 SysNet s.n.c. * All rights reserved. * @@ -113,13 +113,14 @@ ldap_refresh( rc = ber_flatten2( ber, &bv, 0 ); if ( rc < 0 ) { - ld->ld_errno = LDAP_ENCODING_ERROR; - return ld->ld_errno; + rc = ld->ld_errno = LDAP_ENCODING_ERROR; + goto done; } rc = ldap_extended_operation( ld, LDAP_EXOP_REFRESH, &bv, sctrls, cctrls, msgidp ); +done:; ber_free( ber, 1 ); return rc; @@ -142,7 +143,7 @@ ldap_refresh_s( if ( rc != LDAP_SUCCESS ) return rc; rc = ldap_result( ld, msgid, LDAP_MSG_ALL, (struct timeval *)NULL, &res ); - if( rc == -1 ) return ld->ld_errno; + if( rc == -1 || !res ) return ld->ld_errno; rc = ldap_parse_refresh( ld, res, newttl ); if( rc != LDAP_SUCCESS ) {