diff options
author | Markus Friedl <markus@cvs.openbsd.org> | 2015-01-12 20:13:28 +0000 |
---|---|---|
committer | Markus Friedl <markus@cvs.openbsd.org> | 2015-01-12 20:13:28 +0000 |
commit | 481cc193f6d765e84808b41d9d840b6accba96b8 (patch) | |
tree | 1d3fbe442ffa3dd0d9c3aeea64a9911fbca06f19 /usr.bin/ssh/sshkey.c | |
parent | fbe0318a9e8e3dd5dae140bcf57a54b0a0d93bbc (diff) |
unbreak parsing of pubkey comments; with gerhard; ok djm/deraadt
Diffstat (limited to 'usr.bin/ssh/sshkey.c')
-rw-r--r-- | usr.bin/ssh/sshkey.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/usr.bin/ssh/sshkey.c b/usr.bin/ssh/sshkey.c index 4421bff08f7..1fd3136340f 100644 --- a/usr.bin/ssh/sshkey.c +++ b/usr.bin/ssh/sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.9 2015/01/12 13:29:27 markus Exp $ */ +/* $OpenBSD: sshkey.c,v 1.10 2015/01/12 20:13:27 markus Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -1251,8 +1251,14 @@ sshkey_read(struct sshkey *ret, char **cpp) return SSH_ERR_ALLOC_FAIL; /* trim comment */ space = strchr(cp, ' '); - if (space) - *space = '\0'; + if (space) { + /* advance 'space': skip whitespace */ + *space++ = '\0'; + while (*space == ' ' || *space == '\t') + space++; + *cpp = space; + } else + *cpp = cp + strlen(cp); if ((r = sshbuf_b64tod(blob, cp)) != 0) { sshbuf_free(blob); return r; @@ -1327,12 +1333,6 @@ sshkey_read(struct sshkey *ret, char **cpp) sshkey_free(k); if (retval != 0) break; - /* advance cp: skip whitespace and data */ - while (*cp == ' ' || *cp == '\t') - cp++; - while (*cp != '\0' && *cp != ' ' && *cp != '\t') - cp++; - *cpp = cp; break; default: return SSH_ERR_INVALID_ARGUMENT; |