X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/9f6b3bf5187562bac4c96e3ed6a17740d01489fa..0da41dc541d0f2536f9d2afc7188e9dfb97b0c09:/src/src/lookups/ldap.c diff --git a/src/src/lookups/ldap.c b/src/src/lookups/ldap.c index 9751fa3b3..ba77c98c2 100644 --- a/src/src/lookups/ldap.c +++ b/src/src/lookups/ldap.c @@ -5,6 +5,7 @@ /* Copyright (c) The Exim Maintainers 2020 - 2022 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ /* Many thanks to Stuart Lynne for contributing the original code for this driver. Further contributions from Michael Haardt, Brian Candler, Barry @@ -1469,27 +1470,20 @@ t = quoted = store_get_quoted(len + count + 1, s, idx); /* Handle plain quote_ldap */ if (!dn) - { - while ((c = *s++)) - { + for (; c = *s++; *t++ = c) if (!isalnum(c)) { if (Ustrchr(LDAP_QUOTE, c) != NULL) { sprintf(CS t, "%%5C%02X", c); /* e.g. * => %5C2A */ t += 5; - continue; } - if (Ustrchr(URL_NONQUOTE, c) == NULL) /* e.g. ] => %5D */ + else if (Ustrchr(URL_NONQUOTE, c) == NULL) /* e.g. ] => %5D */ { sprintf(CS t, "%%%02X", c); t += 3; - continue; } } - *t++ = c; /* unquoted character */ - } - } /* Handle quote_ldap_dn */ @@ -1519,8 +1513,8 @@ else { if (Ustrchr(LDAP_DN_QUOTE, c) != NULL) { - Ustrncpy(t, US"%5C", 3); /* insert \ where needed */ - t += 3; /* fall through to check URL */ + Ustrcpy(t, US"%5C"); /* insert \ where needed */ + t += 3; /* fall through to check URL */ } if (Ustrchr(URL_NONQUOTE, c) == NULL) /* e.g. ] => %5D */ { @@ -1534,9 +1528,9 @@ else /* Handle the trailing spaces */ - while (*ss++ != 0) + while (*ss++) { - Ustrncpy(t, US"%5C%20", 6); + Ustrcpy(t, US"%5C%20"); t += 6; } }