X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Freferences.c;h=01fc0763046851d0e91d633c16d5e3884bf11ce1;hb=bcf8f7eeb788faa25efe0ea78e66e83e9d9b4d73;hp=176a72c9ec4628ada2c588114c5fc3e98feb0d0a;hpb=dc07e765f263ef459dcd2afd1ece01cfc85a0edd;p=openldap diff --git a/libraries/libldap/references.c b/libraries/libldap/references.c index 176a72c9ec..01fc076304 100644 --- a/libraries/libldap/references.c +++ b/libraries/libldap/references.c @@ -1,5 +1,6 @@ +/* $OpenLDAP$ */ /* - * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ /* @@ -9,7 +10,8 @@ #include "portable.h" #include -#include + +#include #include #include @@ -18,12 +20,15 @@ #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 ); + + if ( ld == NULL || chain == NULL ) { + return NULL; } return chain->lm_msgtype == LDAP_RES_SEARCH_REFERENCE @@ -31,17 +36,20 @@ ldap_first_reference( LDAP *ld, LDAPMessage *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 ); + + if ( ld == NULL || ref == NULL ) { + return NULL; } for ( ref = ref->lm_chain; - ref != NULLMSG; + ref != NULL; ref = ref->lm_chain ) { if( ref->lm_msgtype == LDAP_RES_SEARCH_REFERENCE ) { @@ -49,19 +57,23 @@ ldap_next_reference( LDAP *ld, LDAPMessage *ref ) } } - return( NULLMSG ); + return( NULL ); } -/* ARGSUSED */ int ldap_count_references( LDAP *ld, LDAPMessage *chain ) { int i; + assert( ld != NULL ); + assert( LDAP_VALID( ld ) ); + assert( chain != NULL ); + if ( ld == NULL ) { return -1; } + for ( i = 0; chain != NULL; chain = chain->lm_chain ) { if( chain->lm_msgtype == LDAP_RES_SEARCH_REFERENCE ) { i++; @@ -83,6 +95,10 @@ ldap_parse_reference( char **refs = NULL; int rc; + assert( ld != NULL ); + assert( LDAP_VALID( ld ) ); + assert( ref != NULL ); + if( ld == NULL || ref == NULL || ref->lm_msgtype != LDAP_RES_SEARCH_REFERENCE ) { @@ -126,15 +142,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;