Merged silc_1_0_branch to trunk.
[silc.git] / lib / silcutil / silcapputil.c
index 1f486afad170656c23a30f0b0a18d9450654a4a6..a79ee597549e91a21c7ae838b3cb6335a64e8202 100644 (file)
@@ -175,21 +175,24 @@ New pair of keys will be created.  Please, answer to following questions.\n\
   }
 
   if (!pass) {
-    char *pass2 = NULL;
-    pass = silc_get_input("Private key passphrase: ", TRUE);
-    if (!pass) {
-      pass = strdup("");
-    } else {
-      while (TRUE) {
+    while (TRUE) {
+      char *pass2 = NULL;
+      pass = silc_get_input("Private key passphrase: ", TRUE);
+      if (!pass) {
+        pass = strdup("");
+       break;
+      } else {
+       bool match;
        printf("\n");
        pass2 = silc_get_input("Retype private key passphrase: ", TRUE);
        if (!pass2)
          pass2 = strdup("");
-       if (!strcmp(pass, pass2))
+       match = !strcmp(pass, pass2);
+       silc_free(pass2);
+       if (match)
          break;
-       fprintf(stderr, "\nPassphrases do not match");
+       fprintf(stderr, "\nPassphrases do not match\n\n");
       }
-      silc_free(pass2);
     }
   }