]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - cmdgen.c
Fix a mistaken use of a format string in logevent().
[PuTTY.git] / cmdgen.c
index 254ae6a701905b7993cc8a15e24b38e3717d326e..c15c01dd34bab2e82bd6529b78387344bbd93980 100644 (file)
--- a/cmdgen.c
+++ b/cmdgen.c
@@ -102,6 +102,16 @@ void modalfatalbox(char *p, ...)
     cleanup_exit(1);
 }
 
+void nonfatal(char *p, ...)
+{
+    va_list ap;
+    fprintf(stderr, "ERROR: ");
+    va_start(ap, p);
+    vfprintf(stderr, p, ap);
+    va_end(ap);
+    fputc('\n', stderr);
+}
+
 /*
  * Stubs to let everything else link sensibly.
  */
@@ -779,11 +789,13 @@ int main(int argc, char **argv)
            if (!load_encrypted) {
                ssh2blob = ssh2_userkey_loadpub(infilename, &ssh2alg,
                                                &ssh2bloblen, NULL, &error);
-               ssh2algf = find_pubkey_alg(ssh2alg);
-               if (ssh2algf)
-                   bits = ssh2algf->pubkey_bits(ssh2blob, ssh2bloblen);
-               else
-                   bits = -1;
+                if (ssh2blob) {
+                    ssh2algf = find_pubkey_alg(ssh2alg);
+                    if (ssh2algf)
+                        bits = ssh2algf->pubkey_bits(ssh2blob, ssh2bloblen);
+                    else
+                        bits = -1;
+                }
            } else {
                ssh2key = ssh2_load_userkey(infilename, passphrase, &error);
            }
@@ -1022,6 +1034,8 @@ int main(int argc, char **argv)
       case SSHCOM:
        assert(sshver == 2);
        assert(ssh2key);
+       random_ref(); /* both foreign key types require randomness,
+                       * for IV or padding */
        ret = export_ssh2(outfilename, outtype, ssh2key, passphrase);
        if (!ret) {
            fprintf(stderr, "puttygen: unable to export key\n");