X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/8a9ec85763809cd3e849d3b00750ba74222dee18..e99bb8bfc8d2c1a47b6ae90ef43683d191c30f66:/sshpubk.c diff --git a/sshpubk.c b/sshpubk.c index bd3c5e47..4db37c2b 100644 --- a/sshpubk.c +++ b/sshpubk.c @@ -67,14 +67,15 @@ static int loadrsakey_main(FILE * fp, struct RSAKey *key, int pub_only, i += 4; /* Now the serious stuff. An ordinary SSH-1 public key. */ - i += makekey(buf + i, len, key, NULL, 1); - if (i < 0) + j = makekey(buf + i, len, key, NULL, 1); + if (j < 0) goto end; /* overran */ + i += j; /* Next, the comment field. */ j = GET_32BIT(buf + i); i += 4; - if (len - i < j) + if (j < 0 || len - i < j) goto end; comment = snewn(j + 1, char); if (comment) {