]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9767 Enforce single name per olcUniqueIgnore/olcUniqueAttribute value
authorOndřej Kuzník <ondra@mistotebe.net>
Thu, 9 Dec 2021 11:54:03 +0000 (11:54 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 5 Jan 2022 19:21:17 +0000 (19:21 +0000)
servers/slapd/overlays/unique.c

index d0db27fc40a0467c100d176b383328634804550f..9c3cd1b0537f3996f757fb5c2dbb0e8ad38b63cb 100644 (file)
@@ -551,6 +551,16 @@ unique_cf_attrs( ConfigArgs *c )
                rc = 0;
                break;
        case LDAP_MOD_ADD:
+               if ( c->argc > 2 ) {
+                       snprintf( c->cr_msg, sizeof( c->cr_msg ),
+                               "Please insert multiple names as separate %s values",
+                               c->argv[0] );
+                       Debug ( LDAP_DEBUG_CONFIG, "unique config: %s\n",
+                               c->cr_msg );
+                       rc = ARG_BAD_CONF;
+                       break;
+               }
+               /* FALLTHRU */
        case SLAP_CONFIG_ADD:
                if ( domains ) {
                        snprintf( c->cr_msg, sizeof( c->cr_msg ),
@@ -580,7 +590,7 @@ unique_cf_attrs( ConfigArgs *c )
                if ( !legacy->uri )
                        unique_new_domain_uri_basic ( &legacy->uri, c );
                rc = 0;
-               for ( i=1; c->argv[i]; ++i ) {
+               for ( i=1; i < c->argc; ++i ) {
                        AttributeDescription * ad = NULL;
                        const char * text;
                        if ( slap_str2ad ( c->argv[i], &ad, &text )