close_console: Always unlock as the lock is always held
authorTomas Mraz <tomas@openssl.org>
Tue, 28 Dec 2021 12:32:57 +0000 (13:32 +0100)
committerTomas Mraz <tomas@openssl.org>
Mon, 3 Jan 2022 09:57:39 +0000 (10:57 +0100)
Fixes #17364

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17365)

crypto/ui/ui_openssl.c

index 8cf7a21d767576af253ebdbd379776fdca112ecd..37b98910c7c06c8820b2228316bfcbdb6b9eec1e 100644 (file)
@@ -551,6 +551,8 @@ static int echo_console(UI *ui)
 
 static int close_console(UI *ui)
 {
+    int ret = 1;
+
     if (tty_in != stdin)
         fclose(tty_in);
     if (tty_out != stderr)
@@ -560,12 +562,12 @@ static int close_console(UI *ui)
     if (status != SS$_NORMAL) {
         ERR_raise_data(ERR_LIB_UI, UI_R_SYSDASSGN_ERROR,
                        "status=%%X%08X", status);
-        return 0;
+        ret = 0;
     }
 # endif
     CRYPTO_THREAD_unlock(ui->lock);
 
-    return 1;
+    return ret;
 }
 
 # if !defined(OPENSSL_SYS_WINCE)