+/* $OpenLDAP$ */
/*
+ * Copyright 1998-1999 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.
*
#include "portable.h"
#include <stdio.h>
-#include <stdlib.h>
+
+#include <ac/stdlib.h>
#include <ac/ctype.h>
#include <ac/string.h>
#include "ldap-int.h"
#include "srchpref.h"
+#include "ldap-int.h"
+
static void free_searchobj LDAP_P(( struct ldap_searchobj *so ));
-static int read_next_searchobj LDAP_P(( char **bufp, long *blenp,
+static int read_next_searchobj LDAP_P(( char **bufp, ber_len_t *blenp,
struct ldap_searchobj **sop, int soversion ));
-static char *sobjoptions[] = {
+static const char *const sobjoptions[] = {
"internal",
NULL
};
-static unsigned long sobjoptvals[] = {
+static const unsigned long sobjoptvals[] = {
LDAP_SEARCHOBJ_OPT_INTERNAL,
};
return( LDAP_SEARCHPREF_ERR_FILE );
}
- if (( buf = malloc( (size_t)len )) == NULL ) {
+ if (( buf = LDAP_MALLOC( (size_t)len )) == NULL ) {
fclose( fp );
return( LDAP_SEARCHPREF_ERR_MEM );
}
fclose( fp );
if ( rlen != len && !eof ) { /* error: didn't get the whole file */
- free( buf );
+ LDAP_FREE( buf );
return( LDAP_SEARCHPREF_ERR_FILE );
}
rc = ldap_init_searchprefs_buf( buf, rlen, solistp );
- free( buf );
+ LDAP_FREE( buf );
return( rc );
}
int
-ldap_init_searchprefs_buf( char *buf, long buflen,
+ldap_init_searchprefs_buf(
+ char *buf,
+ ber_len_t buflen,
struct ldap_searchobj **solistp )
{
int rc = -1, version;
char **toks;
struct ldap_searchobj *prevso, *so;
- *solistp = prevso = NULLSEARCHOBJ;
+ *solistp = prevso = NULL;
if ( next_line_tokens( &buf, &buflen, &toks ) != 2 ||
strcasecmp( toks[ 0 ], "version" ) != 0 ) {
}
while ( buflen > 0 && ( rc = read_next_searchobj( &buf, &buflen, &so,
- version )) == 0 && so != NULLSEARCHOBJ ) {
- if ( prevso == NULLSEARCHOBJ ) {
+ version )) == 0 && so != NULL ) {
+ if ( prevso == NULL ) {
*solistp = so;
} else {
prevso->so_next = so;
{
if ( so != NULL ) {
if ( so->so_objtypeprompt != NULL ) {
- free( so->so_objtypeprompt );
+ LDAP_FREE( so->so_objtypeprompt );
}
if ( so->so_prompt != NULL ) {
- free( so->so_prompt );
+ LDAP_FREE( so->so_prompt );
}
if ( so->so_filterprefix != NULL ) {
- free( so->so_filterprefix );
+ LDAP_FREE( so->so_filterprefix );
}
if ( so->so_filtertag != NULL ) {
- free( so->so_filtertag );
+ LDAP_FREE( so->so_filtertag );
}
if ( so->so_defaultselectattr != NULL ) {
- free( so->so_defaultselectattr );
+ LDAP_FREE( so->so_defaultselectattr );
}
if ( so->so_defaultselecttext != NULL ) {
- free( so->so_defaultselecttext );
+ LDAP_FREE( so->so_defaultselecttext );
}
if ( so->so_salist != NULL ) {
struct ldap_searchattr *sa, *nextsa;
for ( sa = so->so_salist; sa != NULL; sa = nextsa ) {
nextsa = sa->sa_next;
if ( sa->sa_attrlabel != NULL ) {
- free( sa->sa_attrlabel );
+ LDAP_FREE( sa->sa_attrlabel );
}
if ( sa->sa_attr != NULL ) {
- free( sa->sa_attr );
+ LDAP_FREE( sa->sa_attr );
}
if ( sa->sa_selectattr != NULL ) {
- free( sa->sa_selectattr );
+ LDAP_FREE( sa->sa_selectattr );
}
if ( sa->sa_selecttext != NULL ) {
- free( sa->sa_selecttext );
+ LDAP_FREE( sa->sa_selecttext );
}
- free( sa );
+ LDAP_FREE( sa );
}
}
if ( so->so_smlist != NULL ) {
for ( sm = so->so_smlist; sm != NULL; sm = nextsm ) {
nextsm = sm->sm_next;
if ( sm->sm_matchprompt != NULL ) {
- free( sm->sm_matchprompt );
+ LDAP_FREE( sm->sm_matchprompt );
}
if ( sm->sm_filter != NULL ) {
- free( sm->sm_filter );
+ LDAP_FREE( sm->sm_filter );
}
- free( sm );
+ LDAP_FREE( sm );
}
}
- free( so );
+ LDAP_FREE( so );
}
}
struct ldap_searchobj *
ldap_next_searchobj( struct ldap_searchobj *solist, struct ldap_searchobj *so )
{
- return( so == NULLSEARCHOBJ ? so : so->so_next );
+ return( so == NULL ? so : so->so_next );
}
static int
-read_next_searchobj( char **bufp, long *blenp, struct ldap_searchobj **sop,
+read_next_searchobj(
+ char **bufp,
+ ber_len_t *blenp,
+ struct ldap_searchobj **sop,
int soversion )
{
int i, j, tokcnt;
return( tokcnt == 0 ? 0 : LDAP_SEARCHPREF_ERR_SYNTAX );
}
- if (( so = (struct ldap_searchobj *)calloc( 1,
+ if (( so = (struct ldap_searchobj *)LDAP_CALLOC( 1,
sizeof( struct ldap_searchobj ))) == NULL ) {
free_strarray( toks );
return( LDAP_SEARCHPREF_ERR_MEM );
}
so->so_objtypeprompt = toks[ 0 ];
- free( (char *)toks );
+ LDAP_FREE( (char *)toks );
/*
* if this is post-version zero, options come next
return( LDAP_SEARCHPREF_ERR_SYNTAX );
}
so->so_prompt = toks[ 0 ];
- free( (char *)toks );
+ LDAP_FREE( (char *)toks );
/*
* Filter prefix for "More Choices" searching is next
return( LDAP_SEARCHPREF_ERR_SYNTAX );
}
so->so_filterprefix = toks[ 0 ];
- free( (char *)toks );
+ LDAP_FREE( (char *)toks );
/*
* "Fewer Choices" filter tag comes next
return( LDAP_SEARCHPREF_ERR_SYNTAX );
}
so->so_filtertag = toks[ 0 ];
- free( (char *)toks );
+ LDAP_FREE( (char *)toks );
/*
* Selection (disambiguation) attribute comes next
return( LDAP_SEARCHPREF_ERR_SYNTAX );
}
so->so_defaultselectattr = toks[ 0 ];
- free( (char *)toks );
+ LDAP_FREE( (char *)toks );
/*
* Label for selection (disambiguation) attribute
return( LDAP_SEARCHPREF_ERR_SYNTAX );
}
so->so_defaultselecttext = toks[ 0 ];
- free( (char *)toks );
+ LDAP_FREE( (char *)toks );
/*
* Search scope is next
ldap_free_searchprefs( so );
return( LDAP_SEARCHPREF_ERR_SYNTAX );
}
- if (( *sa = ( struct ldap_searchattr * ) calloc( 1,
+ if (( *sa = ( struct ldap_searchattr * ) LDAP_CALLOC( 1,
sizeof( struct ldap_searchattr ))) == NULL ) {
free_strarray( toks );
ldap_free_searchprefs( so );
( *sa )->sa_matchtypebitmap |= (1 << j);
}
}
- free( toks[ 2 ] );
- free( ( char * ) toks );
+ LDAP_FREE( toks[ 2 ] );
+ LDAP_FREE( ( char * ) toks );
sa = &(( *sa )->sa_next);
}
*sa = NULL;
ldap_free_searchprefs( so );
return( LDAP_SEARCHPREF_ERR_SYNTAX );
}
- if (( *sm = ( struct ldap_searchmatch * ) calloc( 1,
+ if (( *sm = ( struct ldap_searchmatch * ) LDAP_CALLOC( 1,
sizeof( struct ldap_searchmatch ))) == NULL ) {
free_strarray( toks );
ldap_free_searchprefs( so );
}
( *sm )->sm_matchprompt = toks[ 0 ];
( *sm )->sm_filter = toks[ 1 ];
- free( ( char * ) toks );
+ LDAP_FREE( ( char * ) toks );
sm = &(( *sm )->sm_next );
}
*sm = NULL;