X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fgetfilter.c;h=c837631e6d65f3acd36ea3b4dfca7f73a62cc223;hb=49d73e12a720cfe052a335d82e67994ff261d21c;hp=a357abf78b9695e9bc046f9128ee788c5ce219f6;hpb=1f52f6e43e678c8f77625f5c96105a1bb51cc1ce;p=openldap diff --git a/libraries/libldap/getfilter.c b/libraries/libldap/getfilter.c index a357abf78b..c837631e6d 100644 --- a/libraries/libldap/getfilter.c +++ b/libraries/libldap/getfilter.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 */ /* Portions @@ -12,9 +13,9 @@ #include "portable.h" #include -#include -#include +#include + #include #include #include @@ -82,7 +83,7 @@ ldap_init_getfilter( LDAP_CONST char *fname ) LDAPFiltDesc * -ldap_init_getfilter_buf( char *buf, long buflen ) +ldap_init_getfilter_buf( char *buf, ber_len_t buflen ) { LDAPFiltDesc *lfdp; LDAPFiltList *flp, *nextflp; @@ -100,7 +101,7 @@ ldap_init_getfilter_buf( char *buf, long buflen ) fip = NULL; tag = NULL; - while ( buflen > 0 && ( tokcnt = next_line_tokens( &buf, &buflen, &tok )) + while ( buflen > 0 && ( tokcnt = ldap_int_next_line_tokens( &buf, &buflen, &tok )) > 0 ) { switch( tokcnt ) { @@ -129,7 +130,7 @@ ldap_init_getfilter_buf( char *buf, long buflen ) nextflp->lfl_pattern, error ); errno = EINVAL; #endif /* LDAP_LIBUI */ - free_strarray( tok ); + LDAP_VFREE( tok ); return( NULL ); } regfree(&re); @@ -155,7 +156,7 @@ ldap_init_getfilter_buf( char *buf, long buflen ) if (( nextfip = (LDAPFiltInfo *)LDAP_CALLOC( 1, sizeof( LDAPFiltInfo ))) == NULL ) { ldap_getfilter_free( lfdp ); - free_strarray( tok ); + LDAP_VFREE( tok ); return( NULL ); } if ( fip == NULL ) { /* first one */ @@ -175,7 +176,7 @@ ldap_init_getfilter_buf( char *buf, long buflen ) } else if ( strcasecmp( tok[ 2 ], "base" ) == 0 ) { nextfip->lfi_scope = LDAP_SCOPE_BASE; } else { - free_strarray( tok ); + LDAP_VFREE( tok ); ldap_getfilter_free( lfdp ); errno = EINVAL; return( NULL ); @@ -192,7 +193,7 @@ ldap_init_getfilter_buf( char *buf, long buflen ) break; default: - free_strarray( tok ); + LDAP_VFREE( tok ); ldap_getfilter_free( lfdp ); errno = EINVAL; return( NULL ); @@ -242,17 +243,17 @@ ldap_getfirstfilter( for ( flp = lfdp->lfd_filtlist; flp != NULL; flp = flp->lfl_next ) { /* compile tagpat, continue if we fail */ - if (regcomp(&re, tagpat, 0) != 0) + if (regcomp(&re, tagpat, REG_EXTENDED|REG_NOSUB) != 0) continue; - /* match tagpatern and tag, continue if we fail */ + /* match tagpattern and tag, continue if we fail */ rc = regexec(&re, flp->lfl_tag, 0, NULL, 0); regfree(&re); if (rc != 0) continue; /* compile flp->ifl_pattern, continue if we fail */ - if (regcomp(&re, flp->lfl_pattern, 0) != 0) + if (regcomp(&re, flp->lfl_pattern, REG_EXTENDED|REG_NOSUB) != 0) continue; /* match ifl_pattern and lfd_curval, continue if we fail */ @@ -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, @@ -345,12 +346,12 @@ ldap_build_filter( if ( *p == '%' ) { ++p; if ( *p == 'v' ) { - if ( isdigit( (unsigned char) p[1] )) { + if ( LDAP_DIGIT( (unsigned char) p[1] )) { ++p; wordnum = *p - '1'; if ( *(p+1) == '-' ) { ++p; - if ( isdigit( (unsigned char) p[1] )) { + if ( LDAP_DIGIT( (unsigned char) p[1] )) { ++p; endwordnum = *p - '1'; /* e.g., "%v2-4" */ if ( endwordnum > wordcount - 1 ) { @@ -397,15 +398,14 @@ ldap_build_filter( *f++ = *p; } - if ( (unsigned long) (f - filtbuf) > buflen ) { + if ( (size_t) (f - filtbuf) > buflen ) { /* sanity check */ --f; break; } } - if ( suffix != NULL && ( - (unsigned long) ( f - filtbuf ) < buflen ) ) + if ( suffix != NULL && ( (size_t) (f - filtbuf) < buflen ) ) { strcpy( f, suffix ); } else {