Updated to 1.17

Signed-off-by: Tomas Hozza <thozza@redhat.com>
This commit is contained in:
Tomas Hozza 2015-11-27 11:15:00 +01:00
parent a3e0687996
commit 1db9c7d0c2
9 changed files with 285 additions and 80 deletions

1
.gitignore vendored
View File

@ -6,3 +6,4 @@ wget-1.12.tar.bz2
/wget-1.16.1.tar.xz
/wget-1.16.2.tar.xz
/wget-1.16.3.tar.xz
/wget-1.17.tar.xz

View File

@ -1 +1 @@
d2e4455781a70140ae83b54ca594ce21 wget-1.16.3.tar.xz
b8cff5a2f88f5ce60a2b0e361e030b46 wget-1.17.tar.xz

View File

@ -1,24 +0,0 @@
diff -up wget-1.16.1/tests/Makefile.am.test wget-1.16.1/tests/Makefile.am
--- wget-1.16.1/tests/Makefile.am.test 2014-12-11 10:45:58.947499576 +0100
+++ wget-1.16.1/tests/Makefile.am 2014-12-11 10:47:12.736615080 +0100
@@ -111,8 +111,6 @@ PX_TESTS = \
Test-O-nonexisting.px \
Test-O.px \
Test--post-file.px \
- Test-proxied-https-auth.px \
- Test-proxied-https-auth-keepalive.px \
Test-proxy-auth-basic.px \
Test-restrict-ascii.px \
Test-Restrict-Lowercase.px \
diff -up wget-1.16.1/tests/Makefile.in.test wget-1.16.1/tests/Makefile.in
--- wget-1.16.1/tests/Makefile.in.test 2014-12-11 10:45:58.947499576 +0100
+++ wget-1.16.1/tests/Makefile.in 2014-12-11 10:47:40.986659300 +0100
@@ -1512,8 +1512,6 @@ PX_TESTS = \
Test-O-nonexisting.px \
Test-O.px \
Test--post-file.px \
- Test-proxied-https-auth.px \
- Test-proxied-https-auth-keepalive.px \
Test-proxy-auth-basic.px \
Test-restrict-ascii.px \
Test-Restrict-Lowercase.px \

View File

@ -0,0 +1,62 @@
From 218d81f6e5fb4f5ecd8db0fb2d9091ea509e0475 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
Date: Sat, 21 Nov 2015 21:44:11 +0100
Subject: [PATCH] Fix SIGSEGV in -N / --content-disposition combination
* src/http.c (http_loop): Fix SIGSEGV
Reported-by: "Schleusener, Jens" <Jens.Schleusener@t-online.de>
---
src/http.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/src/http.c b/src/http.c
index 355ff53..9d71483 100644
--- a/src/http.c
+++ b/src/http.c
@@ -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
{
--
2.4.3

View File

@ -0,0 +1,29 @@
From 4e37fb6191d1d3d3c810379854882bbc63ce1697 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
Date: Mon, 23 Nov 2015 17:50:59 +0100
Subject: [PATCH] Fix regression in HTTP authentication
* src/http.c (initialize_request): Fix wrong params to search_netrc()
Regression introduced in commit 29850e77
Reported-by: Axel Reinhold <axel@freakout.de>
---
src/http.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/http.c b/src/http.c
index 9d71483..8916d2b 100644
--- a/src/http.c
+++ b/src/http.c
@@ -1872,7 +1872,7 @@ initialize_request (struct url *u, struct http_stat *hs, int *dt, struct url *pr
/* Find the username and password for authentication. */
*user = u->user;
*passwd = u->passwd;
- search_netrc (u->host, (const char **)&user, (const char **)&passwd, 0);
+ search_netrc (u->host, (const char **)user, (const char **)passwd, 0);
*user = *user ? *user : (opt.http_user ? opt.http_user : opt.user);
*passwd = *passwd ? *passwd : (opt.http_passwd ? opt.http_passwd : opt.passwd);
--
2.4.3

View File

@ -0,0 +1,122 @@
From 99aa7b4f5e13a30e04d4410e98bbb81780e74f09 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@openmediasystem.de>
Date: Wed, 18 Nov 2015 10:58:56 +0100
Subject: [PATCH] Fix HSTS memory issue + test code issue
* src/hsts.c (hsts_find_entry): Fix freeing memory
(hsts_remove_entry): Remove freeing host member
(hsts_match): Free host member here
(hsts_store_entry): Free host member here
(test_url_rewrite): Fix 'created' value
(test_hsts_read_database): Fix 'created' value
Reported-by: Dagobert Michelsen <dam@opencsw.org>
---
src/hsts.c | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/src/hsts.c b/src/hsts.c
index b0989c7..3ddbf72 100644
--- a/src/hsts.c
+++ b/src/hsts.c
@@ -148,13 +148,14 @@ hsts_find_entry (hsts_store_t store,
end:
/* restore pointer or we'll get a SEGV */
k->host = org_ptr;
- xfree (k->host);
/* copy parameters to previous frame */
if (match_type)
*match_type = match;
if (kh)
memcpy (kh, k, sizeof (struct hsts_kh));
+ else
+ xfree (k->host);
xfree (k);
return khi;
@@ -236,8 +237,7 @@ hsts_new_entry (hsts_store_t store,
static void
hsts_remove_entry (hsts_store_t store, struct hsts_kh *kh)
{
- if (hash_table_remove (store->table, kh))
- xfree (kh->host);
+ hash_table_remove (store->table, kh);
}
static bool
@@ -375,9 +375,10 @@ hsts_match (hsts_store_t store, struct url *u)
else
hsts_remove_entry (store, kh);
}
+ xfree (kh->host);
}
- xfree(kh);
+ xfree (kh);
return url_changed;
}
@@ -451,9 +452,10 @@ hsts_store_entry (hsts_store_t store,
result = hsts_add_entry (store, host, port, max_age, include_subdomains);
}
/* we ignore new entries with max_age == 0 */
+ xfree (kh->host);
}
- xfree(kh);
+ xfree (kh);
return result;
}
@@ -613,7 +615,7 @@ test_url_rewrite (hsts_store_t s, const char *url, int port, bool rewrite)
if (rewrite)
{
if (port == 80)
- mu_assert("URL: port should've been rewritten to 443", u.port == 443);
+ mu_assert("URL: port should've been rewritten to 443", u.port == 443);
else
mu_assert("URL: port should've been left intact", u.port == port);
mu_assert("URL: scheme should've been rewritten to HTTPS", u.scheme == SCHEME_HTTPS);
@@ -686,7 +688,7 @@ test_hsts_url_rewrite_superdomain (void)
s = open_hsts_test_store ();
mu_assert("Could not open the HSTS store", s != NULL);
- created = hsts_store_entry (s, SCHEME_HTTPS, "www.foo.com", 443, time(NULL) + 1234, true);
+ created = hsts_store_entry (s, SCHEME_HTTPS, "www.foo.com", 443, 1234, true);
mu_assert("A new entry should've been created", created == true);
TEST_URL_RW (s, "www.foo.com", 80);
@@ -707,7 +709,7 @@ test_hsts_url_rewrite_congruent (void)
s = open_hsts_test_store ();
mu_assert("Could not open the HSTS store", s != NULL);
- created = hsts_store_entry (s, SCHEME_HTTPS, "foo.com", 443, time(NULL) + 1234, false);
+ created = hsts_store_entry (s, SCHEME_HTTPS, "foo.com", 443, 1234, false);
mu_assert("A new entry should've been created", created == true);
TEST_URL_RW (s, "foo.com", 80);
@@ -726,6 +728,7 @@ test_hsts_read_database (void)
char *home = home_dir();
char *file = NULL;
FILE *fp = NULL;
+ time_t created = time(NULL) - 10;
if (home)
{
@@ -734,9 +737,9 @@ test_hsts_read_database (void)
if (fp)
{
fputs ("# dummy comment\n", fp);
- fputs ("foo.example.com\t0\t1\t1434224817\t123123123\n", fp);
- fputs ("bar.example.com\t0\t0\t1434224817\t456456456\n", fp);
- fputs ("test.example.com\t8080\t0\t1434224817\t789789789\n", fp);
+ fprintf (fp, "foo.example.com\t0\t1\t%ld\t123\n",(long) created);
+ fprintf (fp, "bar.example.com\t0\t0\t%ld\t456\n", (long) created);
+ fprintf (fp, "test.example.com\t8080\t0\t%ld\t789\n", (long) created);
fclose (fp);
table = hsts_store_open (file);
--
2.4.3

View File

@ -1,6 +1,6 @@
diff -up wget-1.16.1/doc/sample.wgetrc.munged_for_texi_inclusion.path wget-1.16.1/doc/sample.wgetrc.munged_for_texi_inclusion
--- wget-1.16.1/doc/sample.wgetrc.munged_for_texi_inclusion.path 2014-12-08 11:25:08.000000000 +0100
+++ wget-1.16.1/doc/sample.wgetrc.munged_for_texi_inclusion 2014-12-11 09:51:56.286769486 +0100
diff -up wget-1.17/doc/sample.wgetrc.munged_for_texi_inclusion.path wget-1.17/doc/sample.wgetrc.munged_for_texi_inclusion
--- wget-1.17/doc/sample.wgetrc.munged_for_texi_inclusion.path 2015-11-15 15:11:06.000000000 +0100
+++ wget-1.17/doc/sample.wgetrc.munged_for_texi_inclusion 2015-11-27 10:39:14.257380430 +0100
@@ -10,7 +10,7 @@
## Or online here:
## https://www.gnu.org/software/wget/manual/wget.html#Startup-File
@ -10,7 +10,7 @@ diff -up wget-1.16.1/doc/sample.wgetrc.munged_for_texi_inclusion.path wget-1.16.
## (global, for all users) or $HOME/.wgetrc (for a single user).
##
## To use the settings in this file, you will have to uncomment them,
@@ -19,7 +19,7 @@
@@ -22,7 +22,7 @@
##
@ -19,9 +19,9 @@ diff -up wget-1.16.1/doc/sample.wgetrc.munged_for_texi_inclusion.path wget-1.16.
## Think well before you change them, since they may reduce wget's
## functionality, and make it behave contrary to the documentation:
##
diff -up wget-1.16.1/doc/sample.wgetrc.path wget-1.16.1/doc/sample.wgetrc
--- wget-1.16.1/doc/sample.wgetrc.path 2014-01-22 22:03:47.000000000 +0100
+++ wget-1.16.1/doc/sample.wgetrc 2014-12-11 09:51:56.286769486 +0100
diff -up wget-1.17/doc/sample.wgetrc.path wget-1.17/doc/sample.wgetrc
--- wget-1.17/doc/sample.wgetrc.path 2015-11-09 16:24:06.000000000 +0100
+++ wget-1.17/doc/sample.wgetrc 2015-11-27 10:39:14.257380430 +0100
@@ -10,7 +10,7 @@
## Or online here:
## https://www.gnu.org/software/wget/manual/wget.html#Startup-File
@ -31,7 +31,7 @@ diff -up wget-1.16.1/doc/sample.wgetrc.path wget-1.16.1/doc/sample.wgetrc
## (global, for all users) or $HOME/.wgetrc (for a single user).
##
## To use the settings in this file, you will have to uncomment them,
@@ -19,7 +19,7 @@
@@ -22,7 +22,7 @@
##
@ -40,39 +40,39 @@ diff -up wget-1.16.1/doc/sample.wgetrc.path wget-1.16.1/doc/sample.wgetrc
## Think well before you change them, since they may reduce wget's
## functionality, and make it behave contrary to the documentation:
##
diff -up wget-1.16.1/doc/wget.info.path wget-1.16.1/doc/wget.info
--- wget-1.16.1/doc/wget.info.path 2014-12-08 11:25:09.000000000 +0100
+++ wget-1.16.1/doc/wget.info 2014-12-11 09:51:56.287769488 +0100
@@ -111,7 +111,7 @@ retrieval through HTTP proxies.
* Most of the features are fully configurable, either through command
line options, or via the initialization file '.wgetrc' (*note
Startup File::). Wget allows you to define "global" startup files
- ('/usr/local/etc/wgetrc' by default) for site settings. You can
+ ('/etc/wgetrc' by default) for site settings. You can
also specify the location of a startup file with the -config
diff -up wget-1.17/doc/wget.info.path wget-1.17/doc/wget.info
--- wget-1.17/doc/wget.info.path 2015-11-15 15:11:08.000000000 +0100
+++ wget-1.17/doc/wget.info 2015-11-27 10:45:42.131452410 +0100
@@ -113,7 +113,7 @@ retrieval through HTTP proxies.
Most of the features are fully configurable, either through command
line options, or via the initialization file .wgetrc (*note
Startup File::). Wget allows you to define “global” startup files
- (/usr/local/etc/wgetrc by default) for site settings. You can
+ (/etc/wgetrc by default) for site settings. You can
also specify the location of a startup file with the config
option.
@@ -2532,8 +2532,8 @@ File: wget.info, Node: Wgetrc Location,
@@ -2712,8 +2712,8 @@ File: wget.info, Node: Wgetrc Location,
===================
When initializing, Wget will look for a "global" startup file,
-'/usr/local/etc/wgetrc' by default (or some prefix other than
-'/usr/local', if Wget was not installed there) and read commands from
+'/etc/wgetrc' by default (or some prefix other than
+'/etc', if Wget was not installed there) and read commands from
When initializing, Wget will look for a “global” startup file,
-/usr/local/etc/wgetrc by default (or some prefix other than
-/usr/local, if Wget was not installed there) and read commands from
+/etc/wgetrc by default (or some prefix other than
+/etc, if Wget was not installed there) and read commands from
there, if it exists.
Then it will look for the user's file. If the environmental variable
@@ -2544,7 +2544,7 @@ further attempts will be made.
Then it will look for the users file. If the environmental variable
@@ -2724,7 +2724,7 @@ further attempts will be made.
The fact that user's settings are loaded after the system-wide ones
means that in case of collision user's wgetrc _overrides_ the
-system-wide wgetrc (in '/usr/local/etc/wgetrc' by default). Fascist
+system-wide wgetrc (in '/etc/wgetrc' by default). Fascist
The fact that users settings are loaded after the system-wide ones
means that in case of collision users wgetrc _overrides_ the
-system-wide wgetrc (in /usr/local/etc/wgetrc by default). Fascist
+system-wide wgetrc (in /etc/wgetrc by default). Fascist
admins, away!

@@ -3076,7 +3076,7 @@ its line.
@@ -3261,7 +3261,7 @@ its line.
## Or online here:
## https://www.gnu.org/software/wget/manual/wget.html#Startup-File
##
@ -81,10 +81,19 @@ diff -up wget-1.16.1/doc/wget.info.path wget-1.16.1/doc/wget.info
## (global, for all users) or $HOME/.wgetrc (for a single user).
##
## To use the settings in this file, you will have to uncomment them,
diff -up wget-1.16.1/doc/wget.texi.path wget-1.16.1/doc/wget.texi
--- wget-1.16.1/doc/wget.texi.path 2014-11-11 15:23:33.000000000 +0100
+++ wget-1.16.1/doc/wget.texi 2014-12-11 09:51:56.288769489 +0100
@@ -190,14 +190,14 @@ gauge can be customized to your preferen
@@ -3273,7 +3273,7 @@ its line.
##
- ## Global settings (useful for setting up in /usr/local/etc/wgetrc).
+ ## Global settings (useful for setting up in /etc/wgetrc).
## Think well before you change them, since they may reduce wget's
## functionality, and make it behave contrary to the documentation:
##
diff -up wget-1.17/doc/wget.texi.path wget-1.17/doc/wget.texi
--- wget-1.17/doc/wget.texi.path 2015-11-09 16:24:17.000000000 +0100
+++ wget-1.17/doc/wget.texi 2015-11-27 10:39:14.259380425 +0100
@@ -191,14 +191,14 @@ gauge can be customized to your preferen
Most of the features are fully configurable, either through command line
options, or via the initialization file @file{.wgetrc} (@pxref{Startup
File}). Wget allows you to define @dfn{global} startup files
@ -101,7 +110,7 @@ diff -up wget-1.16.1/doc/wget.texi.path wget-1.16.1/doc/wget.texi
Default location of the @dfn{global} startup file.
@item .wgetrc
@@ -2869,8 +2869,8 @@ commands.
@@ -3030,8 +3030,8 @@ commands.
@cindex location of wgetrc
When initializing, Wget will look for a @dfn{global} startup file,
@ -112,7 +121,7 @@ diff -up wget-1.16.1/doc/wget.texi.path wget-1.16.1/doc/wget.texi
from there, if it exists.
Then it will look for the user's file. If the environmental variable
@@ -2881,7 +2881,7 @@ If @code{WGETRC} is not set, Wget will t
@@ -3042,7 +3042,7 @@ If @code{WGETRC} is not set, Wget will t
The fact that user's settings are loaded after the system-wide ones
means that in case of collision user's wgetrc @emph{overrides} the
@ -121,10 +130,10 @@ diff -up wget-1.16.1/doc/wget.texi.path wget-1.16.1/doc/wget.texi
Fascist admins, away!
@node Wgetrc Syntax, Wgetrc Commands, Wgetrc Location, Startup File
diff -up wget-1.16.1/NEWS.path wget-1.16.1/NEWS
--- wget-1.16.1/NEWS.path 2014-12-08 11:30:12.000000000 +0100
+++ wget-1.16.1/NEWS 2014-12-11 10:30:40.022160421 +0100
@@ -741,7 +741,7 @@ distributed with Wget.
diff -up wget-1.17/NEWS.path wget-1.17/NEWS
--- wget-1.17/NEWS.path 2015-11-15 15:14:50.000000000 +0100
+++ wget-1.17/NEWS 2015-11-27 10:39:14.259380425 +0100
@@ -782,7 +782,7 @@ distributed with Wget.
** Compiles on pre-ANSI compilers.
@ -133,7 +142,7 @@ diff -up wget-1.16.1/NEWS.path wget-1.16.1/NEWS
** Lots of bugfixes.
@@ -804,7 +804,7 @@ Emacs, standalone info, or converted to
@@ -845,7 +845,7 @@ Emacs, standalone info, or converted to
** Fixed a long-standing bug, so that Wget now works over SLIP
connections.
@ -142,9 +151,9 @@ diff -up wget-1.16.1/NEWS.path wget-1.16.1/NEWS
default). Settings in $HOME/.wgetrc override the global ones, of
course :-)
diff -up wget-1.16.1/README.path wget-1.16.1/README
--- wget-1.16.1/README.path 2013-10-21 16:50:12.000000000 +0200
+++ wget-1.16.1/README 2014-12-11 09:51:56.288769489 +0100
diff -up wget-1.17/README.path wget-1.17/README
--- wget-1.17/README.path 2015-11-09 16:24:06.000000000 +0100
+++ wget-1.17/README 2015-11-27 10:39:14.259380425 +0100
@@ -33,7 +33,7 @@ for socks.
Most of the features are configurable, either through command-line

View File

@ -3,9 +3,9 @@
@@ -561,7 +561,7 @@
PACKAGE_NAME='wget'
PACKAGE_TARNAME='wget'
PACKAGE_VERSION='1.16.3'
-PACKAGE_STRING='wget 1.16.3'
+PACKAGE_STRING='wget 1.16.3 (Red Hat modified)'
PACKAGE_VERSION='1.17'
-PACKAGE_STRING='wget 1.17'
+PACKAGE_STRING='wget 1.17 (Red Hat modified)'
PACKAGE_BUGREPORT='bug-wget@gnu.org'
PACKAGE_URL=''

View File

@ -1,15 +1,18 @@
Summary: A utility for retrieving files using the HTTP or FTP protocols
Name: wget
Version: 1.16.3
Release: 2%{?dist}
Version: 1.17
Release: 1%{?dist}
License: GPLv3+
Group: Applications/Internet
Url: http://www.gnu.org/software/wget/
Source: ftp://ftp.gnu.org/gnu/wget/wget-%{version}.tar.xz
Patch1: wget-rh-modified.patch
Patch2: wget-1.16.1-path.patch
Patch3: wget-1.16-dont-run-failing-test.patch
Patch2: wget-1.17-path.patch
# upstream fixes from git post 1.17 version
Patch3: wget-1.17-fix-HSTS-memory-issue-and-test-code-issue.patch
patch4: wget-1.17-Fix-SIGSEGV-in-N-content-disposition-combination.patch
Patch5: wget-1.17-Fix-regression-in-HTTP-authentication.patch
Provides: webclient
Provides: bundled(gnulib)
@ -33,9 +36,9 @@ support for Proxy servers, and configurability.
%setup -q
%patch1 -p0 -b .rh_modified
%patch2 -p1 -b .path
# don't run the Test-proxied-https-auth.px test since it fails with OpenSSL
# upstream is working on fix
%patch3 -p1 -b .test
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build
if pkg-config openssl ; then
@ -85,6 +88,9 @@ rm -rf $RPM_BUILD_ROOT
%{_infodir}/*
%changelog
* Fri Nov 27 2015 Tomas Hozza <thozza@redhat.com> - 1.17-1
- Updated to 1.17 + added some additional upstream fixes
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.16.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild