X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fschemaparse.c;h=900263c84aaa000056f1d0b32fd238a2d4265ab5;hb=b815f61e0d380cb9d70cac70cad0ef04e09b9af1;hp=8f72136abbc2711209d36b66d69ab713c32d4fcc;hpb=2a869f5a99f537b246ba8640502e2a86117cb6e8;p=openldap diff --git a/servers/slapd/schemaparse.c b/servers/slapd/schemaparse.c index 8f72136abb..900263c84a 100644 --- a/servers/slapd/schemaparse.c +++ b/servers/slapd/schemaparse.c @@ -9,13 +9,10 @@ #include "slap.h" -extern char **str2charray(); -extern void charray_merge(); - struct objclass *global_oc; int global_schemacheck; -static void oc_usage(); +static void oc_usage(void); void parse_oc( @@ -32,16 +29,17 @@ parse_oc( struct objclass **ocp; oc = (struct objclass *) ch_calloc( 1, sizeof(struct objclass) ); - oc->oc_name = strdup( argv[1] ); + oc->oc_name = ch_strdup( argv[1] ); for ( i = 2; i < argc; i++ ) { /* required attributes */ if ( strcasecmp( argv[i], "requires" ) == 0 ) { do { i++; if ( i < argc ) { + char **s = str2charray( argv[i], "," ); last = argv[i][strlen( argv[i] ) - 1]; - charray_merge( &oc->oc_required, - str2charray( argv[i], "," ) ); + charray_merge( &oc->oc_required, s ); + charray_free( s ); } } while ( i < argc && last == ',' ); @@ -50,9 +48,11 @@ parse_oc( do { i++; if ( i < argc ) { + char **s = str2charray( argv[i], "," ); last = argv[i][strlen( argv[i] ) - 1]; - charray_merge( &oc->oc_allowed, - str2charray( argv[i], "," ) ); + + charray_merge( &oc->oc_allowed, s ); + charray_free( s ); } } while ( i < argc && last == ',' ); @@ -72,7 +72,7 @@ parse_oc( } static void -oc_usage() +oc_usage( void ) { fprintf( stderr, " ::= objectclass \n" ); fprintf( stderr, " [ requires ]\n" );