andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 5 months ago
Clone
dc8c34
From 0c0b4df54e3be5cc4ed4dec61c0788f4001977c4 Mon Sep 17 00:00:00 2001
dc8c34
From: Mark Reynolds <mreynolds@redhat.com>
dc8c34
Date: Wed, 12 Nov 2014 10:15:46 -0500
dc8c34
Subject: [PATCH 267/267] Ticket 47953 - Should not check aci syntax when
dc8c34
 deleting an aci
dc8c34
dc8c34
Bug Description:  Trying to delete an aci that has an invalid sytenx, generates a
dc8c34
                  syntax error when trying to remove it.
dc8c34
dc8c34
Fix Description:  Do not check the syntax of an aci if it's being deleted.
dc8c34
dc8c34
https://fedorahosted.org/389/ticket/47953
dc8c34
dc8c34
Reviewed by: rmeggins(Thanks!)
dc8c34
dc8c34
(cherry picked from commit 3ce60db0a404b4663df6005b78027332d0e56f95)
dc8c34
dc8c34
Conflicts:
dc8c34
	ldap/servers/plugins/acl/acl.c
dc8c34
dc8c34
(cherry picked from commit 234f118efe7867cbbe36ca5c8b13ea7195114a38)
dc8c34
(cherry picked from commit 67a084d288b971fa31c58375d06a521e4776c6ca)
dc8c34
---
dc8c34
 ldap/servers/plugins/acl/acl.c | 12 +++++++-----
dc8c34
 1 file changed, 7 insertions(+), 5 deletions(-)
dc8c34
dc8c34
diff --git a/ldap/servers/plugins/acl/acl.c b/ldap/servers/plugins/acl/acl.c
dc8c34
index d27c0e1..598601b 100644
dc8c34
--- a/ldap/servers/plugins/acl/acl.c
dc8c34
+++ b/ldap/servers/plugins/acl/acl.c
dc8c34
@@ -1485,13 +1485,15 @@ acl_check_mods(
dc8c34
 
dc8c34
 				/* Are we adding/replacing a aci attribute
dc8c34
 				** value. In that case, we need to make
dc8c34
-				** sure that the new value has thr right 
dc8c34
+				** sure that the new value has the right
dc8c34
 				** syntax
dc8c34
 				*/
dc8c34
-				if (strcmp(mod->mod_type, 
dc8c34
-					   aci_attr_type) == 0) {
dc8c34
-					if ( 0 != (rv = acl_verify_syntax( e_sdn,
dc8c34
-						                        mod->mod_bvalues[i], errbuf))) {
dc8c34
+
dc8c34
+				if (!SLAPI_IS_MOD_DELETE(mod->mod_op) &&
dc8c34
+				    strcmp(mod->mod_type, aci_attr_type) == 0)
dc8c34
+				{
dc8c34
+					if ( 0 != (rv = acl_verify_syntax(e_sdn,
dc8c34
+						mod->mod_bvalues[i], errbuf))) {
dc8c34
 						aclutil_print_err(rv, e_sdn, 
dc8c34
 							mod->mod_bvalues[i],
dc8c34
 							errbuf);
dc8c34
-- 
dc8c34
1.9.3
dc8c34