Commit ee7c64fbcd for openssl.org

commit ee7c64fbcd24276233d238aff1cdf9996be943cd
Author: YZL0v3ZZ <2055877225@qq.com>
Date:   Wed Mar 11 22:54:05 2026 +0800

    Fix system resource leak in TerminalSocket()

    When establishing a terminal socket on OpenVMS, if the async I/O
    read operation (sys$qio) fails, the error path returns early without
    freeing the allocated channel via sys$dassgn.

    Add sys$dassgn(TerminalDeviceChan) in the sys$qio error path during
    creation. Also ensure dassgn executes regardless of whether sys$cancel
    succeeds during deletion to avoid exhausting the I/O channel quota.

    Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
    Reviewed-by: Richard Levitte <levitte@openssl.org>
    Merge-date: Wed Aug 19 15:37:03 2026
    Merged-from: https://github.com/openssl/openssl/pull/30375

diff --git a/apps/lib/vms_term_sock.c b/apps/lib/vms_term_sock.c
index e60d7f0a1b..8cdca03f3f 100644
--- a/apps/lib/vms_term_sock.c
+++ b/apps/lib/vms_term_sock.c
@@ -230,6 +230,7 @@ int TerminalSocket(int FunctionCode, int *ReturnSocket)
             LogMessage("TerminalSocket: SYS$QIO () - %08X", status);
             close(TerminalSocketPair[0]);
             close(TerminalSocketPair[1]);
+            sys$dassgn(TerminalDeviceChan);
             return TERM_SOCK_FAILURE;
         }

@@ -248,6 +249,7 @@ int TerminalSocket(int FunctionCode, int *ReturnSocket)
             LogMessage("TerminalSocket: SYS$CANCEL () - %08X", status);
             close(TerminalSocketPair[0]);
             close(TerminalSocketPair[1]);
+            sys$dassgn(TerminalDeviceChan);
             return TERM_SOCK_FAILURE;
         }