don't "overflow" debug levels (ITS#6324)

This commit is contained in:
Pierangelo Masarati 2009-10-06 22:03:15 +00:00
parent 3fd074155f
commit 16d3ad01c0
3 changed files with 14 additions and 3 deletions

View file

@ -123,7 +123,7 @@ LDAP_BEGIN_DECL
#define LDAP_DEBUG_SYNC 0x4000
#define LDAP_DEBUG_NONE 0x8000
#define LDAP_DEBUG_ANY -1
#define LDAP_DEBUG_ANY ((unsigned long)-1)
/* debugging stuff */
#ifdef LDAP_DEBUG

View file

@ -3051,7 +3051,7 @@ static int
loglevel_init( void )
{
slap_verbmasks lo[] = {
{ BER_BVC("Any"), -1 },
{ BER_BVC("Any"), LDAP_DEBUG_ANY },
{ BER_BVC("Trace"), LDAP_DEBUG_TRACE },
{ BER_BVC("Packets"), LDAP_DEBUG_PACKETS },
{ BER_BVC("Args"), LDAP_DEBUG_ARGS },

View file

@ -270,7 +270,18 @@ parse_debug_level( const char *arg, int *levelp, char ***unknowns )
ldap_charray_free( levels );
} else {
if ( lutil_atoix( &level, arg, 0 ) != 0 ) {
int rc;
if ( arg[0] == '-' ) {
rc = lutil_atoix( &level, arg, 0 );
} else {
unsigned ulevel;
rc = lutil_atoux( &ulevel, arg, 0 );
level = (int)ulevel;
}
if ( rc ) {
fprintf( stderr,
"unrecognized log level "
"\"%s\"\n", arg );