mirror of
https://git.centos.org/rpms/389-ds-base.git
synced 2025-02-24 08:42:57 +00:00
48 lines
2 KiB
Diff
48 lines
2 KiB
Diff
From 1675ffa44180b53e70381e6d10b09a5c4e438780 Mon Sep 17 00:00:00 2001
|
|
From: Mark Reynolds <mreynolds@redhat.com>
|
|
Date: Wed, 11 Nov 2020 08:59:18 -0500
|
|
Subject: [PATCH 2/2] Issue 4383 - Do not normalize escaped spaces in a DN
|
|
|
|
Bug Description: Adding an entry with an escaped leading space leads to many
|
|
problems. Mainly id2entry can get corrupted during an
|
|
import of such an entry, and the entryrdn index is not
|
|
updated correctly
|
|
|
|
Fix Description: In slapi_dn_normalize_ext() leave an escaped space intact.
|
|
|
|
Relates: https://github.com/389ds/389-ds-base/issues/4383
|
|
|
|
Reviewed by: firstyear, progier, and tbordaz (Thanks!!!)
|
|
---
|
|
ldap/servers/slapd/dn.c | 8 ++++++--
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/ldap/servers/slapd/dn.c b/ldap/servers/slapd/dn.c
|
|
index 152561d33..965877850 100644
|
|
--- a/ldap/servers/slapd/dn.c
|
|
+++ b/ldap/servers/slapd/dn.c
|
|
@@ -895,8 +895,7 @@ slapi_dn_normalize_ext(char *src, size_t src_len, char **dest, size_t *dest_len)
|
|
s++;
|
|
}
|
|
}
|
|
- } else if (s + 2 < ends &&
|
|
- isxdigit(*(s + 1)) && isxdigit(*(s + 2))) {
|
|
+ } else if (s + 2 < ends && isxdigit(*(s + 1)) && isxdigit(*(s + 2))) {
|
|
/* esc hexpair ==> real character */
|
|
int n = slapi_hexchar2int(*(s + 1));
|
|
int n2 = slapi_hexchar2int(*(s + 2));
|
|
@@ -904,6 +903,11 @@ slapi_dn_normalize_ext(char *src, size_t src_len, char **dest, size_t *dest_len)
|
|
if (n == 0) { /* don't change \00 */
|
|
*d++ = *++s;
|
|
*d++ = *++s;
|
|
+ } else if (n == 32) { /* leave \20 (space) intact */
|
|
+ *d++ = *s;
|
|
+ *d++ = *++s;
|
|
+ *d++ = *++s;
|
|
+ s++;
|
|
} else {
|
|
*d++ = n;
|
|
s += 3;
|
|
--
|
|
2.26.2
|
|
|