openldap/backport-ITS-8245-Do-not-try-to-release-a-NULL-entry.patch
2022-11-08 13:51:53 +00:00

63 lines
2.0 KiB
Diff

From 81b5ca9113d05190af6aff965b63e82730e00f55 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= <ondra@mistotebe.net>
Date: Fri, 10 Jun 2022 09:39:18 +0100
Subject: [PATCH] ITS#8245 Do not try to release a NULL entry
---
servers/slapd/overlays/unique.c | 32 ++++++++++++++++++--------------
1 file changed, 18 insertions(+), 14 deletions(-)
diff --git a/servers/slapd/overlays/unique.c b/servers/slapd/overlays/unique.c
index 9e8bbeaba..e71fabfd2 100644
--- a/servers/slapd/overlays/unique.c
+++ b/servers/slapd/overlays/unique.c
@@ -1229,13 +1229,15 @@ unique_modify(
return rc;
}
- if ( SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) || (
- get_relax(op) > SLAP_CONTROL_IGNORED
- && overlay_entry_get_ov(op, &op->o_req_ndn, NULL, NULL, 0, &e, on) == LDAP_SUCCESS
- && e
- && access_allowed( op, e,
- slap_schema.si_ad_entry, NULL,
- ACL_MANAGE, NULL ) ) ) {
+ if ( SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) ) {
+ return rc;
+ }
+ if ( get_relax(op) > SLAP_CONTROL_IGNORED
+ && overlay_entry_get_ov( op, &op->o_req_ndn, NULL, NULL, 0, &e, on ) == LDAP_SUCCESS
+ && e
+ && access_allowed( op, e,
+ slap_schema.si_ad_entry, NULL,
+ ACL_MANAGE, NULL ) ) {
overlay_entry_release_ov( op, e, 0, on );
return rc;
}
@@ -1367,13 +1369,15 @@ unique_modrdn(
Debug(LDAP_DEBUG_TRACE, "==> unique_modrdn <%s> <%s>\n",
op->o_req_dn.bv_val, op->orr_newrdn.bv_val );
- if ( SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) || (
- get_relax(op) > SLAP_CONTROL_IGNORED
- && overlay_entry_get_ov(op, &op->o_req_ndn, NULL, NULL, 0, &e, on) == LDAP_SUCCESS
- && e
- && access_allowed( op, e,
- slap_schema.si_ad_entry, NULL,
- ACL_MANAGE, NULL ) ) ) {
+ if ( SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) ) {
+ return rc;
+ }
+ if ( get_relax(op) > SLAP_CONTROL_IGNORED
+ && overlay_entry_get_ov( op, &op->o_req_ndn, NULL, NULL, 0, &e, on ) == LDAP_SUCCESS
+ && e
+ && access_allowed( op, e,
+ slap_schema.si_ad_entry, NULL,
+ ACL_MANAGE, NULL ) ) {
overlay_entry_release_ov( op, e, 0, on );
return rc;
}
--
2.33.0