From 60428c24fb29cb633c9392abb777bc4da88dbfba Mon Sep 17 00:00:00 2001 From: Damien Goutte-Gattat Date: Sun, 29 May 2016 16:55:42 +0200 Subject: [PATCH] dirmngr: fix handling of HTTP redirections * dirmngr/ks-engine-http.c (ks_http_fetch): Reinitialize HTTP session when following a HTTP redirection. Signed-off-by: Damien Goutte-Gattat --- dirmngr/ks-engine-http.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dirmngr/ks-engine-http.c b/dirmngr/ks-engine-http.c index 00d0c4b80..adee04f1b 100644 --- a/dirmngr/ks-engine-http.c +++ b/dirmngr/ks-engine-http.c @@ -73,6 +73,7 @@ ks_http_fetch (ctrl_t ctrl, const char *url, estream_t *r_fp) estream_t fp = NULL; char *request_buffer = NULL; + once_more: /* Note that we only use the system provided certificates with the * fetch command. */ err = http_session_new (&session, NULL, NULL, HTTP_FLAG_TRUST_SYS); @@ -81,7 +82,6 @@ ks_http_fetch (ctrl_t ctrl, const char *url, estream_t *r_fp) http_session_set_log_cb (session, cert_log_cb); *r_fp = NULL; - once_more: err = http_open (&http, HTTP_REQ_GET, url, @@ -146,6 +146,7 @@ ks_http_fetch (ctrl_t ctrl, const char *url, estream_t *r_fp) url = request_buffer; http_close (http, 0); http = NULL; + http_session_release (session); goto once_more; } err = gpg_error_from_syserror ();