]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/getfilter.c
Allow ctrls argument to be NULL.
[openldap] / libraries / libldap / getfilter.c
index 94f73c3c77d804c8014b9678cfa21c507b15b9ce..e3cb60fd0ac3a3eca75a04b957ee7323f35f8109 100644 (file)
@@ -12,7 +12,8 @@
 #include "portable.h"
 
 #include <stdio.h>
-#include <stdlib.h>
+
+#include <ac/stdlib.h>
 
 #include <ac/ctype.h>
 #include <ac/errno.h>
@@ -59,7 +60,7 @@ ldap_init_getfilter( LDAP_CONST char *fname )
        return( NULL );
     }
 
-    if (( buf = malloc( (size_t)len )) == NULL ) {
+    if (( buf = LDAP_MALLOC( (size_t)len )) == NULL ) {
        fclose( fp );
        return( NULL );
     }
@@ -69,20 +70,20 @@ ldap_init_getfilter( LDAP_CONST char *fname )
     fclose( fp );
 
     if ( rlen != len && !eof ) {       /* error:  didn't get the whole file */
-       free( buf );
+       LDAP_FREE( buf );
        return( NULL );
     }
 
 
     lfdp = ldap_init_getfilter_buf( buf, rlen );
-    free( buf );
+    LDAP_FREE( buf );
 
     return( lfdp );
 }
 
 
 LDAPFiltDesc *
-ldap_init_getfilter_buf( char *buf, long buflen )
+ldap_init_getfilter_buf( char *buf, ber_len_t buflen )
 {
     LDAPFiltDesc       *lfdp;
     LDAPFiltList       *flp, *nextflp;
@@ -92,7 +93,7 @@ ldap_init_getfilter_buf( char *buf, long buflen )
        int                             rc;
        regex_t                 re;
 
-    if (( lfdp = (LDAPFiltDesc *)calloc( 1, sizeof( LDAPFiltDesc))) == NULL ) {
+    if (( lfdp = (LDAPFiltDesc *)LDAP_CALLOC( 1, sizeof( LDAPFiltDesc))) == NULL ) {
        return( NULL );
     }
 
@@ -106,19 +107,19 @@ ldap_init_getfilter_buf( char *buf, long buflen )
        switch( tokcnt ) {
        case 1:         /* tag line */
            if ( tag != NULL ) {
-               free( tag );
+               LDAP_FREE( tag );
            }
            tag = tok[ 0 ];
-           free( tok );
+           LDAP_FREE( tok );
            break;
        case 4:
        case 5:         /* start of filter info. list */
-           if (( nextflp = (LDAPFiltList *)calloc( 1, sizeof( LDAPFiltList )))
+           if (( nextflp = (LDAPFiltList *)LDAP_CALLOC( 1, sizeof( LDAPFiltList )))
                    == NULL ) {
                ldap_getfilter_free( lfdp );
                return( NULL );
            }
-           nextflp->lfl_tag = strdup( tag );
+           nextflp->lfl_tag = LDAP_STRDUP( tag );
            nextflp->lfl_pattern = tok[ 0 ];
            if ( (rc = regcomp( &re, nextflp->lfl_pattern, 0 )) != 0 ) {
 #ifdef LDAP_LIBUI
@@ -152,7 +153,7 @@ ldap_init_getfilter_buf( char *buf, long buflen )
        case 2:
        case 3:         /* filter, desc, and optional search scope */
            if ( nextflp != NULL ) { /* add to info list */
-               if (( nextfip = (LDAPFiltInfo *)calloc( 1,
+               if (( nextfip = (LDAPFiltInfo *)LDAP_CALLOC( 1,
                        sizeof( LDAPFiltInfo ))) == NULL ) {
                    ldap_getfilter_free( lfdp );
                    free_strarray( tok );
@@ -180,14 +181,14 @@ ldap_init_getfilter_buf( char *buf, long buflen )
                        errno = EINVAL;
                        return( NULL );
                    }
-                   free( tok[ 2 ] );
+                   LDAP_FREE( tok[ 2 ] );
                    tok[ 2 ] = NULL;
                } else {
                    nextfip->lfi_scope = LDAP_SCOPE_SUBTREE;    /* default */
                }
                nextfip->lfi_isexact = ( strchr( tok[ 0 ], '*' ) == NULL &&
                        strchr( tok[ 0 ], '~' ) == NULL );
-               free( tok );
+               LDAP_FREE( tok );
            }
            break;
 
@@ -200,7 +201,7 @@ ldap_init_getfilter_buf( char *buf, long buflen )
     }
 
     if ( tag != NULL ) {
-       free( tag );
+       LDAP_FREE( tag );
     }
 
     return( lfdp );
@@ -211,14 +212,14 @@ void
 ldap_setfilteraffixes( LDAPFiltDesc *lfdp, LDAP_CONST char *prefix, LDAP_CONST char *suffix )
 {
     if ( lfdp->lfd_filtprefix != NULL ) {
-       free( lfdp->lfd_filtprefix );
+       LDAP_FREE( lfdp->lfd_filtprefix );
     }
-    lfdp->lfd_filtprefix = ( prefix == NULL ) ? NULL : strdup( prefix );
+    lfdp->lfd_filtprefix = ( prefix == NULL ) ? NULL : LDAP_STRDUP( prefix );
 
     if ( lfdp->lfd_filtsuffix != NULL ) {
-       free( lfdp->lfd_filtsuffix );
+       LDAP_FREE( lfdp->lfd_filtsuffix );
     }
-    lfdp->lfd_filtsuffix = ( suffix == NULL ) ? NULL : strdup( suffix );
+    lfdp->lfd_filtsuffix = ( suffix == NULL ) ? NULL : LDAP_STRDUP( suffix );
 }
 
 
@@ -233,8 +234,8 @@ ldap_getfirstfilter(
        regex_t                 re;
 
     if ( lfdp->lfd_curvalcopy != NULL ) {
-       free( lfdp->lfd_curvalcopy );
-       free( lfdp->lfd_curvalwords );
+       LDAP_FREE( lfdp->lfd_curvalcopy );
+       LDAP_FREE( lfdp->lfd_curvalwords );
     }
 
     lfdp->lfd_curval = value;
@@ -270,13 +271,13 @@ ldap_getfirstfilter(
        return( NULL );
     }
 
-    if (( lfdp->lfd_curvalcopy = strdup( value )) == NULL ) {
+    if (( lfdp->lfd_curvalcopy = LDAP_STRDUP( value )) == NULL ) {
        return( NULL );
     }
 
     if ( break_into_words( lfdp->lfd_curvalcopy, flp->lfl_delims,
                &lfdp->lfd_curvalwords ) < 0 ) {
-       free( lfdp->lfd_curvalcopy );
+       LDAP_FREE( lfdp->lfd_curvalcopy );
        lfdp->lfd_curvalcopy = NULL;
        return( NULL );
     }
@@ -313,7 +314,7 @@ ldap_getnextfilter( LDAPFiltDesc *lfdp )
 void
 ldap_build_filter(
        char *filtbuf,
-       unsigned long buflen,
+       ber_len_t buflen,
        LDAP_CONST char *pattern,
        LDAP_CONST char *prefix,
        LDAP_CONST char *suffix,
@@ -421,7 +422,7 @@ break_into_words( /* LDAP_CONST */ char *str, LDAP_CONST char *delims, char ***w
     int                count;
     char        *tok_r;        
 
-    if (( words = (char **)calloc( 1, sizeof( char * ))) == NULL ) {
+    if (( words = (char **)LDAP_CALLOC( 1, sizeof( char * ))) == NULL ) {
        return( -1 );
     }
     count = 0;
@@ -429,7 +430,7 @@ break_into_words( /* LDAP_CONST */ char *str, LDAP_CONST char *delims, char ***w
 
     word = ldap_pvt_strtok( str, delims, &tok_r );
     while ( word != NULL ) {
-       if (( words = (char **)realloc( words,
+       if (( words = (char **)LDAP_REALLOC( words,
                ( count + 2 ) * sizeof( char * ))) == NULL ) {
            return( -1 );
        }