Make memory management uniform: _everything_ now goes through the
[u/mdw/putty] / sshpubk.c
index fd40db7..377be3a 100644 (file)
--- a/sshpubk.c
+++ b/sshpubk.c
@@ -77,7 +77,7 @@ static int loadrsakey_main(FILE *fp, struct RSAKey *key, struct RSAAux *aux,
     j = GET_32BIT(buf+i);
     i += 4;
     if (len-i < j) goto end;
-    comment = malloc(j+1);
+    comment = smalloc(j+1);
     if (comment) {
         memcpy(comment, buf+i, j);
         comment[j] = '\0';
@@ -177,6 +177,7 @@ int rsakey_encrypted(char *filename, char **comment) {
         !strcmp(buf, rsa_signature)) {
         return loadrsakey_main(fp, NULL, NULL, comment, NULL);
     }
+    fclose(fp);
     return 0;                          /* wasn't the right kind of file */
 }
 
@@ -188,7 +189,7 @@ int saversakey(char *filename, struct RSAKey *key, struct RSAAux *aux,
     unsigned char buf[16384];
     unsigned char keybuf[16];
     struct MD5Context md5c;
-    char *p, *estart;
+    unsigned char *p, *estart;
     FILE *fp;
 
     /*