From d829a892183e4799b47325b4e94bc5af63141f2c Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Tue, 4 May 2010 17:34:40 +0200 Subject: [PATCH] Check `resp_status' function return code. --- src/http.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/http.c b/src/http.c index 2330dde1..52ed8365 100644 --- a/src/http.c +++ b/src/http.c @@ -1888,6 +1888,13 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, resp = resp_new (head); statcode = resp_status (resp, &message); + if (statcode < 0) + { + logprintf (LOG_NOTQUIET, _("Invalid server response.\n")); + CLOSE_INVALIDATE (sock); + xfree (head); + return HERR; + } hs->message = xstrdup (message); resp_free (resp); xfree (head); @@ -1976,6 +1983,13 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, /* Check for status line. */ message = NULL; statcode = resp_status (resp, &message); + if (statcode < 0) + { + logprintf (LOG_NOTQUIET, _("Invalid server response.\n")); + CLOSE_INVALIDATE (sock); + request_free (req); + return HERR; + } hs->message = xstrdup (message); if (!opt.server_response) logprintf (LOG_VERBOSE, "%2d %s\n", statcode,