mirror of git://anongit.mindrot.org/openssh.git
upstream commit
unbreak parsing of pubkey comments; with gerhard; ok djm/deraadt
This commit is contained in:
parent
0097565f84
commit
816d1538c2
18
sshkey.c
18
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) 2000, 2001 Markus Friedl. All rights reserved.
|
||||||
* Copyright (c) 2008 Alexander von Gernler. All rights reserved.
|
* Copyright (c) 2008 Alexander von Gernler. All rights reserved.
|
||||||
|
@ -1277,8 +1277,14 @@ sshkey_read(struct sshkey *ret, char **cpp)
|
||||||
return SSH_ERR_ALLOC_FAIL;
|
return SSH_ERR_ALLOC_FAIL;
|
||||||
/* trim comment */
|
/* trim comment */
|
||||||
space = strchr(cp, ' ');
|
space = strchr(cp, ' ');
|
||||||
if (space)
|
if (space) {
|
||||||
*space = '\0';
|
/* 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) {
|
if ((r = sshbuf_b64tod(blob, cp)) != 0) {
|
||||||
sshbuf_free(blob);
|
sshbuf_free(blob);
|
||||||
return r;
|
return r;
|
||||||
|
@ -1355,12 +1361,6 @@ sshkey_read(struct sshkey *ret, char **cpp)
|
||||||
sshkey_free(k);
|
sshkey_free(k);
|
||||||
if (retval != 0)
|
if (retval != 0)
|
||||||
break;
|
break;
|
||||||
/* advance cp: skip whitespace and data */
|
|
||||||
while (*cp == ' ' || *cp == '\t')
|
|
||||||
cp++;
|
|
||||||
while (*cp != '\0' && *cp != ' ' && *cp != '\t')
|
|
||||||
cp++;
|
|
||||||
*cpp = cp;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return SSH_ERR_INVALID_ARGUMENT;
|
return SSH_ERR_INVALID_ARGUMENT;
|
||||||
|
|
Loading…
Reference in New Issue