summaryrefslogtreecommitdiff
path: root/package/busybox/busybox-1.19.3/busybox-1.19.3-wget.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/busybox-1.19.3/busybox-1.19.3-wget.patch')
-rw-r--r--package/busybox/busybox-1.19.3/busybox-1.19.3-wget.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.19.3/busybox-1.19.3-wget.patch b/package/busybox/busybox-1.19.3/busybox-1.19.3-wget.patch
new file mode 100644
index 000000000..e98a506cb
--- /dev/null
+++ b/package/busybox/busybox-1.19.3/busybox-1.19.3-wget.patch
@@ -0,0 +1,29 @@
+--- busybox-1.19.3/networking/wget.c
++++ busybox-1.19.3-wget/networking/wget.c
+@@ -552,6 +552,7 @@ static void download_one_url(const char
+ FILE *dfp; /* socket to ftp server (data) */
+ char *proxy = NULL;
+ char *fname_out_alloc;
++ char *redirected_path = NULL;
+ struct host_info server;
+ struct host_info target;
+
+@@ -794,8 +795,8 @@ However, in real world it was observed t
+ bb_error_msg_and_die("too many redirections");
+ fclose(sfp);
+ if (str[0] == '/') {
+- free(target.allocated);
+- target.path = target.allocated = xstrdup(str+1);
++ free(redirected_path);
++ target.path = redirected_path = xstrdup(str+1);
+ /* lsa stays the same: it's on the same server */
+ } else {
+ parse_url(str, &target);
+@@ -850,6 +851,7 @@ However, in real world it was observed t
+ free(server.allocated);
+ free(target.allocated);
+ free(fname_out_alloc);
++ free(redirected_path);
+ }
+
+ int wget_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;