From 2d03ab4e190755ec5d35a657ae711e5dc02b4fe6 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Thu, 1 Dec 2022 05:30:33 +0100 Subject: [PATCH] Protect against mutability of LdapName --- .../src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java | 3 ++- .../src/org/argeo/cms/directory/ldap/LdapEntryWorkingCopy.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java index 94ff20b03..94e0ac46d 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java @@ -74,7 +74,8 @@ public class DefaultLdapEntry implements LdapEntry { @Override public LdapName getDn() { - return dn; + // always return a copy since LdapName is mutable + return (LdapName) dn.clone(); } public synchronized Attributes getAttributes() { diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapEntryWorkingCopy.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapEntryWorkingCopy.java index b5afc9dce..58e565a37 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapEntryWorkingCopy.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapEntryWorkingCopy.java @@ -9,7 +9,7 @@ import org.argeo.api.cms.transaction.AbstractWorkingCopy; public class LdapEntryWorkingCopy extends AbstractWorkingCopy { @Override protected LdapName getId(LdapEntry entry) { - return entry.getDn(); + return (LdapName) entry.getDn().clone(); } @Override -- 2.30.2