X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-meta%2Fconfig.c;h=fecc0a4e89c283163785bda7527ff9d485017092;hb=8a197d1a6c4f43925adf0a1372651b529081f6ae;hp=610f607545a6c7a6c2d3288a4fc3ac9ee6f45a1e;hpb=4d71b2f9c07cabea8739e380659edb64df71d99c;p=openldap diff --git a/servers/slapd/back-meta/config.c b/servers/slapd/back-meta/config.c index 610f607545..fecc0a4e89 100644 --- a/servers/slapd/back-meta/config.c +++ b/servers/slapd/back-meta/config.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1999-2008 The OpenLDAP Foundation. + * Copyright 1999-2010 The OpenLDAP Foundation. * Portions Copyright 2001-2003 Pierangelo Masarati. * Portions Copyright 1999-2003 Howard Chu. * All rights reserved. @@ -640,6 +640,10 @@ meta_back_db_config( /* save bind creds for referral rebinds? */ } else if ( strcasecmp( argv[ 0 ], "rebind-as-user" ) == 0 ) { + unsigned *flagsp = mi->mi_ntargets ? + &mi->mi_targets[ mi->mi_ntargets - 1 ]->mt_flags + : &mi->mi_flags; + if ( argc > 2 ) { Debug( LDAP_DEBUG_ANY, "%s: line %d: \"rebind-as-user {NO|yes}\" takes 1 argument.\n", @@ -651,16 +655,16 @@ meta_back_db_config( Debug( LDAP_DEBUG_ANY, "%s: line %d: deprecated use of \"rebind-as-user {FALSE|true}\" with no arguments.\n", fname, lineno, 0 ); - mi->mi_flags |= LDAP_BACK_F_SAVECRED; + *flagsp |= LDAP_BACK_F_SAVECRED; } else { switch ( check_true_false( argv[ 1 ] ) ) { case 0: - mi->mi_flags &= ~LDAP_BACK_F_SAVECRED; + *flagsp &= ~LDAP_BACK_F_SAVECRED; break; case 1: - mi->mi_flags |= LDAP_BACK_F_SAVECRED; + *flagsp |= LDAP_BACK_F_SAVECRED; break; default: @@ -1082,7 +1086,9 @@ idassert-authzFrom "dn:" return 1; } - if ( snprintf( binddn, sizeof( binddn ), "binddn=%s", argv[ 1 ] ) >= sizeof( binddn ) ) { + if ( sizeof( binddn ) <= (unsigned) snprintf( binddn, + sizeof( binddn ), "binddn=%s", argv[ 1 ] )) + { Debug( LDAP_DEBUG_ANY, "%s: line %d: \"pseudorootdn\" too long.\n", fname, lineno, 0 ); return 1;