]> git.sur5r.net Git - openldap/commitdiff
ITS#5402
authorQuanah Gibson-Mount <quanah@openldap.org>
Mon, 14 Apr 2008 21:20:45 +0000 (21:20 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Mon, 14 Apr 2008 21:20:45 +0000 (21:20 +0000)
CHANGES
servers/slapd/sets.c

diff --git a/CHANGES b/CHANGES
index d6a05aabf7382b7b503e5963da079a2439870a30..52e9afaf22ac649ebf4efce9d8fe9d509fec29e4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,7 @@ OpenLDAP 2.4.9 Engineering
        Fixed slapd frontendDB backend selection (ITS#5419)
        Fixed slapd delta-syncrepl resync (ITS#5378)
        Fixed slapd pointer dereference (ITS#5388)
+       Fixed slapd sets attribute description parsing (ITS#5402)
        Fixed slapd syncrepl hang on back-config (ITS#5407)
        Fixed slapd syncrepl compare_csns crash (ITS#5413)
        Fixed slapd syncrepl contextCSN update clash (ITS#5426)
index 7f3f8ceba89eb216a6cc3909fde204d2ad0fb8a8..d7c56fa9ed4b41f2726b389f8ef3cb853f4949a2 100644 (file)
@@ -709,20 +709,19 @@ slap_set_filter( SLAP_SET_GATHER gatherer,
                        break;
 
                default:
-                       if ( ( c != '_' )
-                                       && ( c < 'A' || c > 'Z' )
-                                       && ( c < 'a' || c > 'z' ) )
-                       {
+                       if ( !AD_LEADCHAR( c ) ) {
                                SF_ERROR( syntax );
                        }
                        filter--;
                        for ( len = 1;
-                                       ( c = filter[ len ] )
-                                               && ( ( c >= '0' && c <= '9' )
-                                                       || ( c >= 'A' && c <= 'Z' )
-                                                       || ( c >= 'a' && c <= 'z' ) );
-                                       len++ )
-                               /* count */ ;
+                               ( c = filter[ len ] ) && AD_CHAR( c );
+                               len++ )
+                       {
+                               /* count */
+                               if ( c == '-' && !AD_CHAR( filter[ len + 1 ] ) ) {
+                                       break;
+                               }
+                       }
                        if ( len == 4
                                && memcmp( "this", filter, len ) == 0 )
                        {