diff options
author | 2018-11-06 14:14:12 +0000 | |
---|---|---|
committer | 2018-11-06 14:14:12 +0000 | |
commit | d1bcc88292518fb571753407b80008d9b7756c47 (patch) | |
tree | 9f649682f0b3c3b8efb96642498bf06468ca4296 | |
parent | Regression test for UTF-8 separator for join(1). (diff) | |
download | wireguard-openbsd-d1bcc88292518fb571753407b80008d9b7756c47.tar.xz wireguard-openbsd-d1bcc88292518fb571753407b80008d9b7756c47.zip |
Implement SAFE-INIT-CHAR.
OK claudio@
-rw-r--r-- | usr.bin/ldap/ldapclient.c | 11 |
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' || |