Add the missing code to treat data coming from the input method as
[u/mdw/putty] / sshpubk.c
index f35febe..88ff179 100644 (file)
--- a/sshpubk.c
+++ b/sshpubk.c
@@ -162,7 +162,7 @@ int loadrsakey(const Filename *filename, struct RSAKey *key, char *passphrase,
     int ret = 0;
     const char *error = NULL;
 
-    fp = f_open(*filename, "rb", FALSE);
+    fp = f_open(filename, "rb", FALSE);
     if (!fp) {
        error = "can't open file";
        goto end;
@@ -203,7 +203,7 @@ int rsakey_encrypted(const Filename *filename, char **comment)
     FILE *fp;
     char buf[64];
 
-    fp = f_open(*filename, "rb", FALSE);
+    fp = f_open(filename, "rb", FALSE);
     if (!fp)
        return 0;                      /* doesn't even exist */
 
@@ -241,7 +241,7 @@ int rsakey_pubblob(const Filename *filename, void **blob, int *bloblen,
     *bloblen = 0;
     ret = 0;
 
-    fp = f_open(*filename, "rb", FALSE);
+    fp = f_open(filename, "rb", FALSE);
     if (!fp) {
        error = "can't open file";
        goto end;
@@ -364,7 +364,7 @@ int saversakey(const Filename *filename, struct RSAKey *key, char *passphrase)
     /*
      * Done. Write the result to the file.
      */
-    fp = f_open(*filename, "wb", TRUE);
+    fp = f_open(filename, "wb", TRUE);
     if (fp) {
        int ret = (fwrite(buf, 1, p - buf, fp) == (size_t) (p - buf));
         if (fclose(fp))
@@ -495,16 +495,14 @@ static char *read_body(FILE * fp)
 
     while (1) {
        c = fgetc(fp);
-       if (c == '\r' || c == '\n') {
-           c = fgetc(fp);
-           if (c != '\r' && c != '\n' && c != EOF)
-               ungetc(c, fp);
+       if (c == '\r' || c == '\n' || c == EOF) {
+           if (c != EOF) {
+               c = fgetc(fp);
+               if (c != '\r' && c != '\n')
+                   ungetc(c, fp);
+           }
            return text;
        }
-       if (c == EOF) {
-           sfree(text);
-           return NULL;
-       }
        if (len + 1 >= size) {
            size += 128;
            text = sresize(text, size, char);
@@ -634,7 +632,7 @@ struct ssh2_userkey *ssh2_load_userkey(const Filename *filename,
     encryption = comment = mac = NULL;
     public_blob = private_blob = NULL;
 
-    fp = f_open(*filename, "rb", FALSE);
+    fp = f_open(filename, "rb", FALSE);
     if (!fp) {
        error = "can't open file";
        goto error;
@@ -883,7 +881,7 @@ unsigned char *ssh2_userkey_loadpub(const Filename *filename, char **algorithm,
 
     public_blob = NULL;
 
-    fp = f_open(*filename, "rb", FALSE);
+    fp = f_open(filename, "rb", FALSE);
     if (!fp) {
        error = "can't open file";
        goto error;
@@ -964,7 +962,7 @@ int ssh2_userkey_encrypted(const Filename *filename, char **commentptr)
     if (commentptr)
        *commentptr = NULL;
 
-    fp = f_open(*filename, "rb", FALSE);
+    fp = f_open(filename, "rb", FALSE);
     if (!fp)
        return 0;
     if (!read_header(fp, header)
@@ -1145,7 +1143,7 @@ int ssh2_save_userkey(const Filename *filename, struct ssh2_userkey *key,
        memset(&s, 0, sizeof(s));
     }
 
-    fp = f_open(*filename, "w", TRUE);
+    fp = f_open(filename, "w", TRUE);
     if (!fp)
        return 0;
     fprintf(fp, "PuTTY-User-Key-File-2: %s\n", key->alg->name);
@@ -1181,7 +1179,7 @@ int key_type(const Filename *filename)
     const char openssh_sig[] = "-----BEGIN ";
     int i;
 
-    fp = f_open(*filename, "r", FALSE);
+    fp = f_open(filename, "r", FALSE);
     if (!fp)
        return SSH_KEYTYPE_UNOPENABLE;
     i = fread(buf, 1, sizeof(buf), fp);