X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/6e3c47cb9cf52992ff76e7e9795ea37fe6a884db..56668e6dca80813a2c9f03d4c02ed20e22f1061b:/sshpubk.c diff --git a/sshpubk.c b/sshpubk.c index 76aa3436..b860040d 100644 --- a/sshpubk.c +++ b/sshpubk.c @@ -74,7 +74,7 @@ static int loadrsakey_main(FILE * fp, struct RSAKey *key, int pub_only, /* 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) { @@ -257,8 +257,8 @@ int rsakey_pubblob(const Filename *filename, void **blob, int *bloblen, *blob = rsa_public_blob(&key, bloblen); freersakey(&key); ret = 1; - fp = NULL; } + fp = NULL; /* loadrsakey_main unconditionally closes fp */ } else { error = "not an SSH-1 RSA file"; } @@ -679,7 +679,6 @@ struct ssh2_userkey *ssh2_load_userkey(const Filename *filename, cipher = 0; cipherblk = 1; } else { - sfree(encryption); goto error; }