X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;ds=sidebyside;f=sshpubk.c;h=923ebe9d9ebe81052b830135ee170d3b9fb9aec7;hb=49d2cf19accb059b3b68d1fc2b78e606a578c3e8;hp=2d5ff1d74ff002914c7217faa9d439bea625da0f;hpb=69ac38c1a847348de4c05fd4e19abf17a10de8b3;p=PuTTY.git diff --git a/sshpubk.c b/sshpubk.c index 2d5ff1d7..923ebe9d 100644 --- a/sshpubk.c +++ b/sshpubk.c @@ -866,7 +866,8 @@ struct ssh2_userkey *ssh2_load_userkey(const Filename *filename, } char *ssh2_userkey_loadpub(const Filename *filename, char **algorithm, - int *pub_blob_len, const char **errorstr) + int *pub_blob_len, char **commentptr, + const char **errorstr) { FILE *fp; char header[40], *b; @@ -875,6 +876,7 @@ char *ssh2_userkey_loadpub(const Filename *filename, char **algorithm, int public_blob_len; int i; const char *error = NULL; + char *comment; public_blob = NULL; @@ -912,9 +914,13 @@ char *ssh2_userkey_loadpub(const Filename *filename, char **algorithm, /* Read the Comment header line. */ if (!read_header(fp, header) || 0 != strcmp(header, "Comment")) goto error; - if ((b = read_body(fp)) == NULL) + if ((comment = read_body(fp)) == NULL) goto error; - sfree(b); /* we don't care */ + + if (commentptr) + *commentptr = comment; + else + sfree(comment); /* Read the Public-Lines header line and the public blob. */ if (!read_header(fp, header) || 0 != strcmp(header, "Public-Lines"))