X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fvlvctrl.c;h=9a55a4b5235a13bb2e911680cea5fcace2f955f2;hb=6018fe9671dcbb90e3845bc14851858c5d9fdf2a;hp=6f4feeb805fb52588a64bff2897a5d9460c7a194;hpb=e94ded997d744bba98c8c231b25a727107af9cbd;p=openldap diff --git a/libraries/libldap/vlvctrl.c b/libraries/libldap/vlvctrl.c index 6f4feeb805..9a55a4b523 100644 --- a/libraries/libldap/vlvctrl.c +++ b/libraries/libldap/vlvctrl.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2006 The OpenLDAP Foundation. + * Copyright 1998-2011 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,9 +27,6 @@ * can be found in the file "build/LICENSE-2.0.1" in this distribution * of OpenLDAP Software. */ -/* Portions Copyright (C) The Internet Society (1997) - * ASN.1 fragments are from RFC 2251; see RFC for full legal notices. - */ #include "portable.h" @@ -95,14 +92,16 @@ ldap_create_vlv_control_value( BerElement *ber; if ( ld == NULL || vlvinfop == NULL || value == NULL ) { - ld->ld_errno = LDAP_PARAM_ERROR; - return ld->ld_errno; + if ( ld ) + ld->ld_errno = LDAP_PARAM_ERROR; + return LDAP_PARAM_ERROR; } assert( LDAP_VALID( ld ) ); value->bv_val = NULL; value->bv_len = 0; + ld->ld_errno = LDAP_SUCCESS; ber = ldap_alloc_ber_with_options( ld ); if ( ber == NULL ) { @@ -220,11 +219,10 @@ ldap_create_vlv_control( ld->ld_errno = ldap_create_vlv_control_value( ld, vlvinfop, &value ); if ( ld->ld_errno == LDAP_SUCCESS ) { - ld->ld_errno = ldap_create_control( LDAP_CONTROL_VLVREQUEST, - NULL, 1, ctrlp ); - if ( ld->ld_errno == LDAP_SUCCESS ) { - (*ctrlp)->ldctl_value = value; - } else { + + ld->ld_errno = ldap_control_create( LDAP_CONTROL_VLVREQUEST, + 1, &value, 0, ctrlp ); + if ( ld->ld_errno != LDAP_SUCCESS ) { LDAP_FREE( value.bv_val ); } }