]> git.sur5r.net Git - openldap/commitdiff
A more strict oidValidate
authorKurt Zeilenga <kurt@openldap.org>
Mon, 28 Jun 2004 22:53:19 +0000 (22:53 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Mon, 28 Jun 2004 22:53:19 +0000 (22:53 +0000)
servers/slapd/schema_prep.c

index 594338144cdc93ee9623be151482890021ad85a0..33366f3a1060d7688c28581ffbb58736c5602f77 100644 (file)
@@ -57,33 +57,26 @@ oidValidate(
                }
 
        } else {
+               int sep = 0;
                while( OID_LEADCHAR( val.bv_val[0] ) ) {
-                       if ( val.bv_len == 1 ) {
-                               return LDAP_SUCCESS;
-                       }
-
-                       /* FIXME: the OID of 'dc' and other attributeTypes
-                        * starts with '0'! */
-                       if ( val.bv_val[0] == '0' && !OID_SEPARATOR( val.bv_val[1] ) ) {
-                               break;
-                       }
-
                        val.bv_val++;
                        val.bv_len--;
 
-                       while ( OID_LEADCHAR( val.bv_val[0] )) {
-                               val.bv_val++;
-                               val.bv_len--;
-
-                               if ( val.bv_len == 0 ) {
-                                       return LDAP_SUCCESS;
+                       if ( val.bv_val[-1] != '0' ) {
+                               while ( OID_LEADCHAR( val.bv_val[0] )) {
+                                       val.bv_val++;
+                                       val.bv_len--;
                                }
                        }
 
-                       if( !OID_SEPARATOR( val.bv_val[0] )) {
-                               break;
+                       if( val.bv_len == 0 ) {
+                               if( sep == 0 ) break;
+                               return LDAP_SUCCESS;
                        }
 
+                       if( !OID_SEPARATOR( val.bv_val[0] )) break;
+
+                       sep++;
                        val.bv_val++;
                        val.bv_len--;
                }