]> git.sur5r.net Git - openldap/commitdiff
DirectoryString syntaxes must have one or more octets to be valid.
authorKurt Zeilenga <kurt@openldap.org>
Fri, 23 Jun 2000 23:57:53 +0000 (23:57 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Fri, 23 Jun 2000 23:57:53 +0000 (23:57 +0000)
servers/slapd/schema_init.c

index a4b2edcf992ce327dafe35153e747abce4b3beb8..774876d7ffb6c307fdbec11d55e4cf9645331ddb 100644 (file)
@@ -310,6 +310,8 @@ UTF8StringValidate(
        int len;
        unsigned char *u = in->bv_val;
 
+       if( !in->bv_len ) return LDAP_INVALID_SYNTAX;
+
        for( count = in->bv_len; count > 0; count-=len, u+=len ) {
                /* get the length indicated by the first byte */
                len = LDAP_UTF8_CHARLEN( u );
@@ -377,7 +379,7 @@ UTF8StringNormalize(
 
        assert( *newval->bv_val );
        assert( newval->bv_val < p );
-       assert( p <= q );
+       assert( p >= q );
 
        /* cannot start with a space */
        assert( !ldap_utf8_isspace(newval->bv_val) );
@@ -447,6 +449,8 @@ integerValidate(
 {
        ber_len_t i;
 
+       if( !val->bv_len ) return LDAP_INVALID_SYNTAX;
+
        for(i=0; i < val->bv_len; i++) {
                if( !ASCII_DIGIT(val->bv_val[i]) ) return LDAP_INVALID_SYNTAX;
        }
@@ -461,6 +465,8 @@ printableStringValidate(
 {
        ber_len_t i;
 
+       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;
        }
@@ -475,6 +481,8 @@ IA5StringValidate(
 {
        ber_len_t i;
 
+       if( !val->bv_len ) return LDAP_INVALID_SYNTAX;
+
        for(i=0; i < val->bv_len; i++) {
                if( !isascii(val->bv_val[i]) ) return LDAP_INVALID_SYNTAX;
        }