summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormartijn <martijn@openbsd.org>2018-11-06 14:14:12 +0000
committermartijn <martijn@openbsd.org>2018-11-06 14:14:12 +0000
commitd1bcc88292518fb571753407b80008d9b7756c47 (patch)
tree9f649682f0b3c3b8efb96642498bf06468ca4296
parentRegression test for UTF-8 separator for join(1). (diff)
downloadwireguard-openbsd-d1bcc88292518fb571753407b80008d9b7756c47.tar.xz
wireguard-openbsd-d1bcc88292518fb571753407b80008d9b7756c47.zip
Implement SAFE-INIT-CHAR.
OK claudio@
-rw-r--r--usr.bin/ldap/ldapclient.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.bin/ldap/ldapclient.c b/usr.bin/ldap/ldapclient.c
index 3a71d5a37b3..98c98085773 100644
--- a/usr.bin/ldap/ldapclient.c
+++ b/usr.bin/ldap/ldapclient.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ldapclient.c,v 1.5 2018/10/23 08:28:34 martijn Exp $ */
+/* $OpenBSD: ldapclient.c,v 1.6 2018/11/06 14:14:12 martijn Exp $ */
/*
* Copyright (c) 2018 Reyk Floeter <reyk@openbsd.org>
@@ -404,8 +404,13 @@ ldapc_printattr(struct ldapc *ldap, const char *key, const char *value)
* in SAFE-STRINGs. String value that do not match the
* criteria must be encoded as Base64.
*/
- for (cp = (const unsigned char *)value;
- encode == 0 &&*cp != '\0'; cp++) {
+ cp = (const unsigned char *)value;
+ /* !SAFE-INIT-CHAR: SAFE-CHAR minus %x20 %x3A %x3C */
+ if (*cp == ' ' ||
+ *cp == ':' ||
+ *cp == '<')
+ encode = 1;
+ for (; encode == 0 &&*cp != '\0'; cp++) {
/* !SAFE-CHAR %x01-09 / %x0B-0C / %x0E-7F */
if (*cp > 127 ||
*cp == '\0' ||