git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rework "compiler quietening"
[exim.git]
/
src
/
src
/
lookups
/
ldap.c
diff --git
a/src/src/lookups/ldap.c
b/src/src/lookups/ldap.c
index ba77c98c25c94d6469b4543350ba697065b45138..b2ad3bbbc995be796055a4d28c55f1bef511e0af 100644
(file)
--- a/
src/src/lookups/ldap.c
+++ b/
src/src/lookups/ldap.c
@@
-1470,20
+1470,27
@@
t = quoted = store_get_quoted(len + count + 1, s, idx);
/* Handle plain quote_ldap */
if (!dn)
/* Handle plain quote_ldap */
if (!dn)
- for (; c = *s++; *t++ = c)
+ {
+ while ((c = *s++))
+ {
if (!isalnum(c))
{
if (Ustrchr(LDAP_QUOTE, c) != NULL)
{
sprintf(CS t, "%%5C%02X", c); /* e.g. * => %5C2A */
t += 5;
if (!isalnum(c))
{
if (Ustrchr(LDAP_QUOTE, c) != NULL)
{
sprintf(CS t, "%%5C%02X", c); /* e.g. * => %5C2A */
t += 5;
+ continue;
}
}
-
else
if (Ustrchr(URL_NONQUOTE, c) == NULL) /* e.g. ] => %5D */
+ if (Ustrchr(URL_NONQUOTE, c) == NULL) /* e.g. ] => %5D */
{
sprintf(CS t, "%%%02X", c);
t += 3;
{
sprintf(CS t, "%%%02X", c);
t += 3;
+ continue;
}
}
}
}
+ *t++ = c; /* unquoted character */
+ }
+ }
/* Handle quote_ldap_dn */
/* Handle quote_ldap_dn */
@@
-1513,7
+1520,7
@@
else
{
if (Ustrchr(LDAP_DN_QUOTE, c) != NULL)
{
{
if (Ustrchr(LDAP_DN_QUOTE, c) != NULL)
{
-
Ustrcpy(t, US"%5C");
/* insert \ where needed */
+
memcpy(t, US"%5C", 3);
/* insert \ where needed */
t += 3; /* fall through to check URL */
}
if (Ustrchr(URL_NONQUOTE, c) == NULL) /* e.g. ] => %5D */
t += 3; /* fall through to check URL */
}
if (Ustrchr(URL_NONQUOTE, c) == NULL) /* e.g. ] => %5D */
@@
-1530,7
+1537,7
@@
else
while (*ss++)
{
while (*ss++)
{
-
Ustrcpy(t, US"%5C%20"
);
+
memcpy(t, US"%5C%20", 6
);
t += 6;
}
}
t += 6;
}
}