diff options
author | 2018-03-07 23:53:08 +0000 | |
---|---|---|
committer | 2018-03-07 23:53:08 +0000 | |
commit | b3671700aec07985a96220b022be7b91332df255 (patch) | |
tree | aaf47e405f672043f125606a2ebcb2ae7a73f9b8 | |
parent | rfc4954 provides more than one method to submit the same credentials and in (diff) | |
download | wireguard-openbsd-b3671700aec07985a96220b022be7b91332df255.tar.xz wireguard-openbsd-b3671700aec07985a96220b022be7b91332df255.zip |
revert recent strdelim() change, it causes problems with some configs.
revision 1.124
date: 2018/03/02 03:02:11; author: djm; state: Exp; lines: +19 -8; commitid: nNRsCijZiGG6SUTT;
Allow escaped quotes \" and \' in ssh_config and sshd_config quotes
option strings. bz#1596 ok markus@
-rw-r--r-- | usr.bin/ssh/misc.c | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/usr.bin/ssh/misc.c b/usr.bin/ssh/misc.c index 42c24d7c1ab..a9bcbf7f719 100644 --- a/usr.bin/ssh/misc.c +++ b/usr.bin/ssh/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.125 2018/03/03 03:15:51 djm Exp $ */ +/* $OpenBSD: misc.c,v 1.126 2018/03/07 23:53:08 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005,2006 Damien Miller. All rights reserved. @@ -217,7 +217,7 @@ set_rdomain(int fd, const char *name) char * strdelim(char **s) { - char *old, *cp; + char *old; int wspace = 0; if (*s == NULL) @@ -231,24 +231,13 @@ strdelim(char **s) if (*s[0] == '\"') { memmove(*s, *s + 1, strlen(*s)); /* move nul too */ - /* Find matching quote */ - for (cp = *s; ; cp++) { - if (*cp == '\0') - return NULL; /* no matching quote */ - if (*cp == '\\') { - /* Escape sequence */ - if (cp[1] == '\"' || cp[1] == '\'' || - cp[1] == '\\') { - memmove(cp, cp + 1, strlen(cp)); - continue; - } - return NULL; /* invalid escape */ - } else if (*cp == '\"') { - *(cp++) = '\0'; - *s += strspn(cp, WHITESPACE); - return old; - } + if ((*s = strpbrk(*s, QUOTE)) == NULL) { + return (NULL); /* no matching quote */ + } else { + *s[0] = '\0'; + *s += strspn(*s + 1, WHITESPACE) + 1; + return (old); } } |