]> git.sur5r.net Git - openldap/commitdiff
Update printableString to restrict characters per RFC1778 not isprint()
authorKurt Zeilenga <kurt@openldap.org>
Sat, 4 Nov 2000 20:31:50 +0000 (20:31 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sat, 4 Nov 2000 20:31:50 +0000 (20:31 +0000)
servers/slapd/schema_init.c
servers/slapd/slap.h

index 2e46cac04067ca47fc7f934a1bfa475b036bba13..8aa1368a32d3e008e95b55bae70d97f3a3cd3070 100644 (file)
@@ -2325,7 +2325,9 @@ printableStringValidate(
        if( !val->bv_len ) return LDAP_INVALID_SYNTAX;
 
        for(i=0; i < val->bv_len; i++) {
-               if( !isprint(val->bv_val[i]) ) return LDAP_INVALID_SYNTAX;
+               if( !SLAP_PRINTABLE(val->bv_val[i]) ) {
+                       return LDAP_INVALID_SYNTAX;
+               }
        }
 
        return LDAP_SUCCESS;
index 48d69172f1326a7db33cc622817f5f2d1a70d067..be6dde382942cbb6f0f6b0fc2fc62c2ee94c1c79 100644 (file)
@@ -101,6 +101,11 @@ LDAP_BEGIN_DECL
 #define AD_LEADCHAR(c) ( ATTR_CHAR(c) )
 #define AD_CHAR(c)             ( ATTR_CHAR(c) || (c) == ';' )
 
+#define SLAP_PRINTABLE(c)      ( ASCII_ALNUM(c) || (c) == '\'' || \
+       (c) == '(' || (c) == ')' || (c) == '+' || (c) == ',' || \
+       (c) == '-' || (c) == '.' || (c) == '/' || (c) == ':' || \
+       (c) == '?' || (c) == ' ' )
+
 /* must match in schema_init.c */
 #define SLAPD_DN_SYNTAX                        "1.3.6.1.4.1.1466.115.121.1.12"
 #define SLAPD_NAMEUID_SYNTAX           "1.3.6.1.4.1.1466.115.121.1.34"