1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

Fix SIGSEGV in -N / --content-disposition combination

* src/http.c (http_loop): Fix SIGSEGV

Reported-by: "Schleusener, Jens" <Jens.Schleusener@t-online.de>
This commit is contained in:
Tim Rühsen 2015-11-21 21:44:11 +01:00
parent 46cd721c0f
commit 218d81f6e5

View File

@ -3794,7 +3794,6 @@ http_loop (struct url *u, struct url *original_url, char **newloc,
struct http_stat hstat; /* HTTP status */
struct_stat st;
bool send_head_first = true;
char *file_name;
bool force_full_retrieve = false;
@ -3864,11 +3863,6 @@ http_loop (struct url *u, struct url *original_url, char **newloc,
if (opt.content_disposition && opt.always_rest)
send_head_first = true;
if (!opt.output_document)
file_name = url_file_name (opt.trustservernames ? u : original_url, NULL);
else
file_name = xstrdup (opt.output_document);
#ifdef HAVE_METALINK
if (opt.metalink_over_http)
{
@ -3881,7 +3875,7 @@ http_loop (struct url *u, struct url *original_url, char **newloc,
{
/* Use conditional get request if requested
* and if timestamp is known at this moment. */
if (opt.if_modified_since && file_exists_p (file_name) && !send_head_first)
if (opt.if_modified_since && !send_head_first && got_name && file_exists_p (hstat.local_file))
{
*dt |= IF_MODIFIED_SINCE;
{
@ -3892,12 +3886,10 @@ http_loop (struct url *u, struct url *original_url, char **newloc,
}
/* Send preliminary HEAD request if -N is given and we have existing
* destination file or content disposition is enabled. */
else if (file_exists_p (file_name) || opt.content_disposition)
else if (opt.content_disposition || file_exists_p (hstat.local_file))
send_head_first = true;
}
xfree (file_name);
/* THE loop */
do
{