PR: 2192
authorDr. Stephen Henson <steve@openssl.org>
Fri, 12 Mar 2010 12:48:56 +0000 (12:48 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 12 Mar 2010 12:48:56 +0000 (12:48 +0000)
Submitted By: Jaroslav Imrich <jaroslav.imrich@disig.sk>

The prompt_info and wrong_info parameters can be empty strings which
can produce confusing prompts. Treat empty string same as NULL.

engines/e_chil.c

index e1847622ea74b92fba5632c525a06c9291c504f9..3a07076b4fef97a851a601f07d19a678309f86c4 100644 (file)
@@ -1204,6 +1204,11 @@ static int hwcrhk_get_pass(const char *prompt_info,
        pem_password_cb *callback = NULL;
        void *callback_data = NULL;
         UI_METHOD *ui_method = NULL;
+       /* Despite what the documentation says prompt_info can be
+        * an empty string.
+        */
+       if (prompt_info && !*prompt_info)
+               prompt_info = NULL;
 
         if (cactx)
                 {
@@ -1305,8 +1310,10 @@ static int hwcrhk_insert_card(const char *prompt_info,
                {
                char answer;
                char buf[BUFSIZ];
-
-               if (wrong_info)
+               /* Despite what the documentation says wrong_info can be
+                * an empty string.
+                */
+               if (wrong_info && *wrong_info)
                        BIO_snprintf(buf, sizeof(buf)-1,
                                "Current card: \"%s\"\n", wrong_info);
                ok = UI_dup_info_string(ui, buf);