diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2024-02-16 08:24:26 +0100 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2024-02-16 08:24:26 +0100 |
commit | 2810b934647edd483996bee1f5f9256a162b2705 (patch) | |
tree | 3bdbcb3a1eece580a76b567a8743eb97653062cf /dirmngr | |
parent | dirmngr: Fix the regression of use of proxy for TLS connection. (diff) | |
download | gnupg2-2810b934647edd483996bee1f5f9256a162b2705.tar.xz gnupg2-2810b934647edd483996bee1f5f9256a162b2705.zip |
dirmngr: Fix keep-alive flag handling.
* dirmngr/http.c (run_proxy_connect): Set KEEP_ALIVE if not Basic
Authentication. Fix resource leak of FP_WRITE.
--
GnuPG-bug-id: 6997
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
Diffstat (limited to 'dirmngr')
-rw-r--r-- | dirmngr/http.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/dirmngr/http.c b/dirmngr/http.c index ac7e13241..e4c719348 100644 --- a/dirmngr/http.c +++ b/dirmngr/http.c @@ -2553,7 +2553,7 @@ run_proxy_connect (http_t hd, proxy_info_t proxy, * RFC-4559 - SPNEGO-based Kerberos and NTLM HTTP Authentication */ auth_basic = !!proxy->uri->auth; - hd->keep_alive = 0; + hd->keep_alive = !auth_basic; /* We may need to send more requests. */ /* For basic authentication we need to send just one request. */ if (auth_basic @@ -2717,6 +2717,14 @@ run_proxy_connect (http_t hd, proxy_info_t proxy, } leave: + if (hd->keep_alive) + { + es_fclose (hd->fp_write); + hd->fp_write = NULL; + /* The close has released the cookie and thus we better set it + * to NULL. */ + hd->write_cookie = NULL; + } /* Restore flags, destroy stream, reset state. */ hd->flags = saved_flags; es_fclose (hd->fp_read); |