X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Freferences.c;h=17c88b0c0e2555f1a61bc2ee45747f43405e0bbc;hb=e22dc83ac096d1239a6903199f5dc3231b0f444b;hp=fd56c9ce00bff1baafc54db5001731880eab6c1b;hpb=4d2761a6a64eaa1c4d5f7949277ecfe25b42ca83;p=openldap diff --git a/libraries/libldap/references.c b/libraries/libldap/references.c index fd56c9ce00..17c88b0c0e 100644 --- a/libraries/libldap/references.c +++ b/libraries/libldap/references.c @@ -1,47 +1,53 @@ -/* - * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. - * COPYING RESTRICTIONS APPLY, see COPYRIGHT file - */ -/* - * references.c +/* references.c */ +/* $OpenLDAP$ */ +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2009 The OpenLDAP Foundation. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in the file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . */ #include "portable.h" #include -#include -#include +#include + #include #include #include #include "ldap-int.h" -/* ARGSUSED */ LDAPMessage * ldap_first_reference( LDAP *ld, LDAPMessage *chain ) { - if ( ld == NULL || chain == NULLMSG ) { - return NULLMSG; - } + assert( ld != NULL ); + assert( LDAP_VALID( ld ) ); + assert( chain != NULL ); return chain->lm_msgtype == LDAP_RES_SEARCH_REFERENCE ? chain : ldap_next_reference( ld, chain ); } -/* ARGSUSED */ LDAPMessage * ldap_next_reference( LDAP *ld, LDAPMessage *ref ) { - if ( ld == NULL || ref == NULLMSG ) { - return NULLMSG; - } + assert( ld != NULL ); + assert( LDAP_VALID( ld ) ); + assert( ref != NULL ); for ( ref = ref->lm_chain; - ref != NULLMSG; + ref != NULL; ref = ref->lm_chain ) { if( ref->lm_msgtype == LDAP_RES_SEARCH_REFERENCE ) { @@ -49,18 +55,16 @@ ldap_next_reference( LDAP *ld, LDAPMessage *ref ) } } - return( NULLMSG ); + return( NULL ); } -/* ARGSUSED */ int ldap_count_references( LDAP *ld, LDAPMessage *chain ) { int i; - if ( ld == NULL ) { - return -1; - } + assert( ld != NULL ); + assert( LDAP_VALID( ld ) ); for ( i = 0; chain != NULL; chain = chain->lm_chain ) { if( chain->lm_msgtype == LDAP_RES_SEARCH_REFERENCE ) { @@ -83,14 +87,16 @@ ldap_parse_reference( char **refs = NULL; int rc; - if( ld == NULL || ref == NULL || - ref->lm_msgtype != LDAP_RES_SEARCH_REFERENCE ) - { + assert( ld != NULL ); + assert( LDAP_VALID( ld ) ); + assert( ref != NULL ); + + if( ref->lm_msgtype != LDAP_RES_SEARCH_REFERENCE ) { return LDAP_PARAM_ERROR; } /* make a private copy of BerElement */ - SAFEMEMCPY(&be, ref->lm_ber, sizeof(be)); + AC_MEMCPY(&be, ref->lm_ber, sizeof(be)); if ( ber_scanf( &be, "{v" /*}*/, &refs ) == LBER_ERROR ) { rc = LDAP_DECODING_ERROR; @@ -107,7 +113,7 @@ ldap_parse_reference( goto free_and_return; } - rc = ldap_get_ber_controls( &be, serverctrls ); + rc = ldap_pvt_get_controls( &be, serverctrls ); free_and_return: @@ -116,7 +122,7 @@ free_and_return: *referralsp = refs; } else { - ldap_value_free( refs ); + LDAP_VFREE( refs ); } if( freeit ) { @@ -126,15 +132,15 @@ free_and_return: if( rc != LDAP_SUCCESS ) { ld->ld_errno = rc; - if( ld->ld_matched != NULL ) - free( ld->ld_matched ); - - ld->ld_matched = NULL; - - if( ld->ld_error != NULL ) - free( ld->ld_error ); + if( ld->ld_matched != NULL ) { + LDAP_FREE( ld->ld_matched ); + ld->ld_matched = NULL; + } - ld->ld_error = NULL; + if( ld->ld_error != NULL ) { + LDAP_FREE( ld->ld_error ); + ld->ld_error = NULL; + } } return rc;