From add9c9c25ecad64233999ac7ec2f89830c78b614 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Fri, 6 Oct 2006 01:41:13 +0000 Subject: [PATCH] ITS#4672 fix. --- CHANGES | 1 + servers/slapd/schema_init.c | 21 +++++++-------------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/CHANGES b/CHANGES index 91d1d66805..cd65006ceb 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,7 @@ OpenLDAP 2.3.28 Engineering Fixed slapd global access controls initialization (ITS#4654) Fixed slapd setting c_sasl_bindop only on SASL binds Fixed slapd return code not being propagated (ITS#4565) + Fixed slapd integerBitAndMatch (ITS#4672) Fixed slapd-ldap retry with idassert (ITS#4686) Fixed slapd-monitor locking with scope "subordinate" (ITS#4668) Fixed slapd-perl deletes (ITS#2612) diff --git a/servers/slapd/schema_init.c b/servers/slapd/schema_init.c index e0a0600542..fc126f127f 100644 --- a/servers/slapd/schema_init.c +++ b/servers/slapd/schema_init.c @@ -2354,16 +2354,11 @@ numericStringNormalize( * Integer conversion macros that will use the largest available * type. */ -#if defined(HAVE_STRTOLL) && defined(LLONG_MAX) \ - && defined(LLONG_MIN) && defined(HAVE_LONG_LONG) +#if defined(HAVE_STRTOLL) && defined(HAVE_LONG_LONG) # define SLAP_STRTOL(n,e,b) strtoll(n,e,b) -# define SLAP_LONG_MAX LLONG_MAX -# define SLAP_LONG_MIN LLONG_MIN # define SLAP_LONG long long #else # define SLAP_STRTOL(n,e,b) strtol(n,e,b) -# define SLAP_LONG_MAX LONG_MAX -# define SLAP_LONG_MIN LONG_MIN # define SLAP_LONG long #endif /* HAVE_STRTOLL ... */ @@ -2378,18 +2373,17 @@ integerBitAndMatch( { SLAP_LONG lValue, lAssertedValue; + errno = 0; /* safe to assume integers are NUL terminated? */ lValue = SLAP_STRTOL(value->bv_val, NULL, 10); - if(( lValue == SLAP_LONG_MIN || lValue == SLAP_LONG_MAX) && - errno == ERANGE ) + if( errno == ERANGE ) { return LDAP_CONSTRAINT_VIOLATION; } lAssertedValue = SLAP_STRTOL(((struct berval *)assertedValue)->bv_val, NULL, 10); - if(( lAssertedValue == SLAP_LONG_MIN || lAssertedValue == SLAP_LONG_MAX ) && - errno == ERANGE ) + if( errno == ERANGE ) { return LDAP_CONSTRAINT_VIOLATION; } @@ -2409,18 +2403,17 @@ integerBitOrMatch( { SLAP_LONG lValue, lAssertedValue; + errno = 0; /* safe to assume integers are NUL terminated? */ lValue = SLAP_STRTOL(value->bv_val, NULL, 10); - if(( lValue == SLAP_LONG_MIN || lValue == SLAP_LONG_MAX ) && - errno == ERANGE ) + if( errno == ERANGE ) { return LDAP_CONSTRAINT_VIOLATION; } lAssertedValue = SLAP_STRTOL( ((struct berval *)assertedValue)->bv_val, NULL, 10); - if(( lAssertedValue == SLAP_LONG_MIN || lAssertedValue == SLAP_LONG_MAX ) && - errno == ERANGE ) + if( errno == ERANGE ) { return LDAP_CONSTRAINT_VIOLATION; } -- 2.39.5