From 65dd4e6ab329acfd545b670278f602b91c0b7129 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Wed, 3 Sep 2008 01:32:46 +0000 Subject: [PATCH] ITS#5634 --- CHANGES | 1 + servers/slapd/schema_init.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index f096f6bef0..8420a500f1 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ OpenLDAP 2.4 Change Log OpenLDAP 2.4.12 Engineering Fixed liblutil executables on Windows (ITS#5604) + Fixed slapd firstComponentMatch normalization (ITS#5634) Fixed slapd socket closing on Windows (ITS#5606) Fixed slapd-ldap,slapd-meta invalid filter behavior (ITS#5614) Fixed slapd-meta quarantine behavior (ITS#5592) diff --git a/servers/slapd/schema_init.c b/servers/slapd/schema_init.c index 36d51ba23c..fd386a74f2 100644 --- a/servers/slapd/schema_init.c +++ b/servers/slapd/schema_init.c @@ -4536,8 +4536,10 @@ firstComponentNormalize( if( val->bv_len < 3 ) return LDAP_INVALID_SYNTAX; - if( val->bv_val[0] != '(' /*')'*/ && - val->bv_val[0] != '{' /*'}'*/ ) + if( ! ( val->bv_val[0] == '(' /*')'*/ + && val->bv_val[val->bv_len - 1] == /*'('*/ ')' ) + && ! ( val->bv_val[0] == '{' /*'}'*/ + && val->bv_val[val->bv_len - 1] == /*'('*/ '}' ) ) { return LDAP_INVALID_SYNTAX; } @@ -4552,7 +4554,7 @@ firstComponentNormalize( /* grab next word */ comp.bv_val = &val->bv_val[len]; - len = val->bv_len - len; + len = val->bv_len - len - STRLENOF(/*"{"*/ "}"); for( comp.bv_len = 0; !ASCII_SPACE(comp.bv_val[comp.bv_len]) && comp.bv_len < len; comp.bv_len++ ) -- GitLab