]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/bconfig.c
don't return entry if requested attr is not present (ITS#5650)
[openldap] / servers / slapd / bconfig.c
index de01d5b3c82a59db36e5fedf112d3cfc00739ab8..a27299e4e82a92a5335cf515693b0084f7bf50ae 100644 (file)
@@ -3992,6 +3992,11 @@ cfAddDatabase( CfEntryInfo *p, Entry *e, struct config_args_s *ca )
        if ( p->ce_type != Cft_Global ) {
                return LDAP_CONSTRAINT_VIOLATION;
        }
+       /* config must be {0}, nothing else allowed */
+       if ( !strncmp( e->e_nname.bv_val, "olcDatabase={0}", STRLENOF("olcDatabase={0}")) &&
+               strncmp( e->e_nname.bv_val + STRLENOF("olcDatabase={0}"), "config,", STRLENOF("config,") )) {
+               return LDAP_CONSTRAINT_VIOLATION;
+       }
        ca->be = frontendDB;    /* just to get past check_vals */
        return LDAP_SUCCESS;
 }