summaryrefslogtreecommitdiff
path: root/net/openldap22-server/files/patch-servers::slapd::config.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/openldap22-server/files/patch-servers::slapd::config.c')
-rw-r--r--net/openldap22-server/files/patch-servers::slapd::config.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/net/openldap22-server/files/patch-servers::slapd::config.c b/net/openldap22-server/files/patch-servers::slapd::config.c
new file mode 100644
index 000000000000..c33e1e964316
--- /dev/null
+++ b/net/openldap22-server/files/patch-servers::slapd::config.c
@@ -0,0 +1,51 @@
+--- servers/slapd/config.c Mon Oct 13 03:57:02 2003
++++ servers/slapd/config.c Sun Oct 19 15:33:56 2003
+@@ -2782,9 +2782,9 @@
+ ber_dupbv( &si->updatedn, &be->be_rootndn );
+ si->bindmethod = LDAP_AUTH_SIMPLE;
+ si->schemachecking = 0;
+- si->filterstr = "(objectclass=*)";
++ ber_str2bv( "(objectclass=*)", sizeof("(objectclass=*)")-1, 0, &si->filterstr );
+ if ( be->be_suffix && be->be_suffix[0].bv_val )
+- si->base = ch_strdup( be->be_suffix[0].bv_val );
++ ber_dupbv( &si->base, &be->be_nsuffix[0] );
+ si->scope = LDAP_SCOPE_SUBTREE;
+ si->attrsonly = 0;
+ si->attrs = (char **) ch_calloc( 1, sizeof( char * ));
+@@ -2914,14 +2914,11 @@
+ }
+ } else if ( !strncasecmp( cargv[ i ],
+ UPDATEDNSTR, sizeof( UPDATEDNSTR ) - 1 ) ) {
+- char *str;
+ struct berval updatedn = {0, NULL};
+ val = cargv[ i ] + sizeof( UPDATEDNSTR );
+- str = ch_strdup( val );
+- ber_str2bv( str, strlen(str), 1, &updatedn );
++ ber_str2bv( val, 0, 0, &updatedn );
++ ch_free( si->updatedn.bv_val );
+ dnNormalize( 0, NULL, NULL, &updatedn, &si->updatedn, NULL );
+- ch_free( str );
+- ch_free( updatedn.bv_val );
+ } else if ( !strncasecmp( cargv[ i ], BINDMETHSTR,
+ sizeof( BINDMETHSTR ) - 1 ) ) {
+ val = cargv[ i ] + sizeof( BINDMETHSTR );
+@@ -2987,11 +2984,17 @@
+ } else if ( !strncasecmp( cargv[ i ],
+ FILTERSTR, sizeof( FILTERSTR ) - 1 ) ) {
+ val = cargv[ i ] + sizeof( FILTERSTR );
+- si->filterstr = ch_strdup( val );
++ ber_str2bv( val, 0, 1, &si->filterstr );
+ } else if ( !strncasecmp( cargv[ i ],
+ SEARCHBASESTR, sizeof( SEARCHBASESTR ) - 1 ) ) {
++ struct berval bv;
+ val = cargv[ i ] + sizeof( SEARCHBASESTR );
+- si->base = ch_strdup( val );
++ ch_free( si->base.bv_val );
++ ber_str2bv( val, 0, 0, &bv );
++ if ( dnNormalize( 0, NULL, NULL, &bv, &si->base, NULL )) {
++ fprintf( stderr, "Invalid base DN \"%s\"\n", val );
++ return 1;
++ }
+ } else if ( !strncasecmp( cargv[ i ],
+ SCOPESTR, sizeof( SCOPESTR ) - 1 ) ) {
+ val = cargv[ i ] + sizeof( SCOPESTR );