X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fdsparse.c;h=2b7771c5bdf1b74dbcbf3d1d4fcbb2ff5c91cdbd;hb=f42966f9e1ac239213e236b93375559a1e25ba5f;hp=e0a40daa1df4195968ba28fca9874f165916fde9;hpb=7e6ad5100c2702b1d56a285bdfb341ddf38c0d76;p=openldap diff --git a/libraries/libldap/dsparse.c b/libraries/libldap/dsparse.c index e0a40daa1d..2b7771c5bd 100644 --- a/libraries/libldap/dsparse.c +++ b/libraries/libldap/dsparse.c @@ -1,4 +1,9 @@ +/* $OpenLDAP$ */ /* + * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ +/* Portions * Copyright (c) 1993, 1994 Regents of the University of Michigan. * All rights reserved. * @@ -18,12 +23,10 @@ #include "portable.h" #include -#include +#include -#include #include #include -extern char *strdup (const char *); #ifdef HAVE_SYS_FILE_H #include @@ -31,13 +34,12 @@ extern char *strdup (const char *); #include "ldap-int.h" -static int next_line LDAP_P(( char **bufp, long *blenp, char **linep )); +static int next_line LDAP_P(( char **bufp, ber_len_t *blenp, char **linep )); static char *next_token LDAP_P(( char ** sp )); - int -next_line_tokens( char **bufp, long *blenp, char ***toksp ) +ldap_int_next_line_tokens( char **bufp, ber_len_t *blenp, char ***toksp ) { char *p, *line, *token, **toks; int rc, tokcnt; @@ -48,18 +50,18 @@ next_line_tokens( char **bufp, long *blenp, char ***toksp ) return( rc ); } - if (( toks = (char **)calloc( 1, sizeof( char * ))) == NULL ) { - free( line ); + if (( toks = (char **)LDAP_CALLOC( 1, sizeof( char * ))) == NULL ) { + LBER_FREE( line ); return( -1 ); } tokcnt = 0; p = line; while (( token = next_token( &p )) != NULL ) { - if (( toks = (char **)realloc( toks, ( tokcnt + 2 ) * + if (( toks = (char **)LDAP_REALLOC( toks, ( tokcnt + 2 ) * sizeof( char * ))) == NULL ) { - free( (char *)toks ); - free( line ); + LBER_FREE( (char *)toks ); + LBER_FREE( line ); return( -1 ); } toks[ tokcnt ] = token; @@ -68,15 +70,15 @@ next_line_tokens( char **bufp, long *blenp, char ***toksp ) if ( tokcnt == 1 && strcasecmp( toks[ 0 ], "END" ) == 0 ) { tokcnt = 0; - free_strarray( toks ); + LDAP_VFREE( toks ); toks = NULL; } - free( line ); + LBER_FREE( line ); if ( tokcnt == 0 ) { if ( toks != NULL ) { - free( (char *)toks ); + LBER_FREE( (char *)toks ); } } else { *toksp = toks; @@ -87,10 +89,10 @@ next_line_tokens( char **bufp, long *blenp, char ***toksp ) static int -next_line( char **bufp, long *blenp, char **linep ) +next_line( char **bufp, ber_len_t *blenp, char **linep ) { char *linestart, *line, *p; - long plen; + ber_slen_t plen; linestart = *bufp; p = *bufp; @@ -128,12 +130,12 @@ next_line( char **bufp, long *blenp, char **linep ) return( 0 ); /* end of file */ } - if (( line = malloc( p - linestart )) == NULL ) { + if (( line = LDAP_MALLOC( p - linestart )) == NULL ) { *linep = NULL; return( -1 ); /* fatal error */ } - (void) memcpy( line, linestart, p - linestart ); + AC_MEMCPY( line, linestart, p - linestart ); line[ p - linestart - 1 ] = '\0'; *linep = line; return( strlen( line )); @@ -152,7 +154,7 @@ next_token( char **sp ) p = *sp; - while ( isspace( *p )) { /* skip leading white space */ + while ( LDAP_SPACE( (unsigned char) *p )) { /* skip leading white space */ ++p; } @@ -167,7 +169,7 @@ next_token( char **sp ) t = tokstart = p; for ( ;; ) { - if ( *p == '\0' || ( isspace( *p ) && !in_quote )) { + if ( *p == '\0' || ( LDAP_SPACE( (unsigned char) *p ) && !in_quote )) { if ( *p != '\0' ) { ++p; } @@ -189,19 +191,5 @@ next_token( char **sp ) return( NULL ); } - return( strdup( tokstart )); -} - - -void -free_strarray( char **sap ) -{ - int i; - - if ( sap != NULL ) { - for ( i = 0; sap[ i ] != NULL; ++i ) { - free( sap[ i ] ); - } - free( (char *)sap ); - } + return( LDAP_STRDUP( tokstart )); }