From 3d908bcd896dd74894f48fed9398725195b54447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Mon, 6 Dec 2021 15:58:54 +0000 Subject: [PATCH] ITS#9758 Make sure we don't end up with duplicates in entry --- servers/slapd/back-sock/config.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/servers/slapd/back-sock/config.c b/servers/slapd/back-sock/config.c index 50ed5d6b00..4ae1bdf47f 100644 --- a/servers/slapd/back-sock/config.c +++ b/servers/slapd/back-sock/config.c @@ -214,6 +214,10 @@ bs_cf_gen( ConfigArgs *c ) if ( verbs_to_mask( c->argc, c->argv, bs_exts, &adds ) ) { return LDAP_INVALID_SYNTAX; } + /* Tolerate overlaps in slapd.conf */ + if ( c->op != SLAP_CONFIG_ADD && adds & si->si_extensions ) { + return LDAP_TYPE_OR_VALUE_EXISTS; + } si->si_extensions |= adds; return 0; } @@ -222,6 +226,10 @@ bs_cf_gen( ConfigArgs *c ) if ( verbs_to_mask( c->argc, c->argv, ov_ops, &adds ) ) { return LDAP_INVALID_SYNTAX; } + /* Tolerate overlaps in slapd.conf */ + if ( c->op != SLAP_CONFIG_ADD && adds & si->si_ops ) { + return LDAP_TYPE_OR_VALUE_EXISTS; + } si->si_ops |= adds; return 0; } @@ -230,6 +238,10 @@ bs_cf_gen( ConfigArgs *c ) if ( verbs_to_mask( c->argc, c->argv, ov_resps, &adds ) ) { return LDAP_INVALID_SYNTAX; } + /* Tolerate overlaps in slapd.conf */ + if ( c->op != SLAP_CONFIG_ADD && adds & si->si_resps ) { + return LDAP_TYPE_OR_VALUE_EXISTS; + } si->si_resps |= adds; return 0; }