Blame SOURCES/wget-1.19.5-Dont-save-userpw-with---xattr.patch

62af7d
From 83c408842b80b4ed26a3fe8a61177846dda18c60 Mon Sep 17 00:00:00 2001
62af7d
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
62af7d
Date: Wed, 26 Dec 2018 14:38:18 +0100
62af7d
Subject: [PATCH] Don't save user/pw with --xattr
62af7d
62af7d
---
62af7d
 src/ftp.c   |  2 +-
62af7d
 src/http.c  |  4 ++--
62af7d
 src/xattr.c | 24 ++++++++++++++++++++----
62af7d
 src/xattr.h |  3 ++-
62af7d
 4 files changed, 25 insertions(+), 8 deletions(-)
62af7d
62af7d
diff --git a/src/ftp.c b/src/ftp.c
62af7d
index daaae93..c02ed02 100644
62af7d
--- a/src/ftp.c
62af7d
+++ b/src/ftp.c
62af7d
@@ -1580,7 +1580,7 @@ Error in server response, closing control connection.\n"));
62af7d
 
62af7d
 #ifdef ENABLE_XATTR
62af7d
   if (opt.enable_xattr)
62af7d
-    set_file_metadata (u->url, NULL, fp);
62af7d
+    set_file_metadata (u, NULL, fp);
62af7d
 #endif
62af7d
 
62af7d
   fd_close (local_sock);
62af7d
diff --git a/src/http.c b/src/http.c
62af7d
index 499a43b..18e58e9 100644
62af7d
--- a/src/http.c
62af7d
+++ b/src/http.c
62af7d
@@ -4120,9 +4120,9 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs,
62af7d
   if (opt.enable_xattr)
62af7d
     {
62af7d
       if (original_url != u)
62af7d
-        set_file_metadata (u->url, original_url->url, fp);
62af7d
+        set_file_metadata (u, original_url, fp);
62af7d
       else
62af7d
-        set_file_metadata (u->url, NULL, fp);
62af7d
+        set_file_metadata (u, NULL, fp);
62af7d
     }
62af7d
 #endif
62af7d
 
62af7d
diff --git a/src/xattr.c b/src/xattr.c
62af7d
index 6652422..0f20fad 100644
62af7d
--- a/src/xattr.c
62af7d
+++ b/src/xattr.c
62af7d
@@ -21,6 +21,7 @@
62af7d
 #include <string.h>
62af7d
 
62af7d
 #include "log.h"
62af7d
+#include "utils.h"
62af7d
 #include "xattr.h"
62af7d
 
62af7d
 #ifdef USE_XATTR
62af7d
@@ -57,7 +58,7 @@ write_xattr_metadata (const char *name, const char *value, FILE *fp)
62af7d
 #endif /* USE_XATTR */
62af7d
 
62af7d
 int
62af7d
-set_file_metadata (const char *origin_url, const char *referrer_url, FILE *fp)
62af7d
+set_file_metadata (const struct url *origin_url, const struct url *referrer_url, FILE *fp)
62af7d
 {
62af7d
   /* Save metadata about where the file came from (requested, final URLs) to
62af7d
    * user POSIX Extended Attributes of retrieved file.
62af7d
@@ -67,13 +68,28 @@ set_file_metadata (const char *origin_url, const char *referrer_url, FILE *fp)
62af7d
    * [http://0pointer.de/lennart/projects/mod_mime_xattr/].
62af7d
    */
62af7d
   int retval = -1;
62af7d
+  char *value;
62af7d
 
62af7d
   if (!origin_url || !fp)
62af7d
     return retval;
62af7d
 
62af7d
-  retval = write_xattr_metadata ("user.xdg.origin.url", escnonprint_uri (origin_url), fp);
62af7d
-  if ((!retval) && referrer_url)
62af7d
-    retval = write_xattr_metadata ("user.xdg.referrer.url", escnonprint_uri (referrer_url), fp);
62af7d
+  value = url_string (origin_url, URL_AUTH_HIDE);
62af7d
+  retval = write_xattr_metadata ("user.xdg.origin.url", escnonprint_uri (value), fp);
62af7d
+  xfree (value);
62af7d
+
62af7d
+  if (!retval && referrer_url)
62af7d
+    {
62af7d
+	  struct url u;
62af7d
+
62af7d
+	  memset(&u, 0, sizeof(u));
62af7d
+      u.scheme = referrer_url->scheme;
62af7d
+      u.host = referrer_url->host;
62af7d
+      u.port = referrer_url->port;
62af7d
+
62af7d
+      value = url_string (&u, 0);
62af7d
+      retval = write_xattr_metadata ("user.xdg.referrer.url", escnonprint_uri (value), fp);
62af7d
+      xfree (value);
62af7d
+    }
62af7d
 
62af7d
   return retval;
62af7d
 }
62af7d
diff --git a/src/xattr.h b/src/xattr.h
62af7d
index 10f3ed1..40c7a8d 100644
62af7d
--- a/src/xattr.h
62af7d
+++ b/src/xattr.h
62af7d
@@ -16,12 +16,13 @@
62af7d
    along with this program; if not, see <http://www.gnu.org/licenses/>.  */
62af7d
 
62af7d
 #include <stdio.h>
62af7d
+#include <url.h>
62af7d
 
62af7d
 #ifndef _XATTR_H
62af7d
 #define _XATTR_H
62af7d
 
62af7d
 /* Store metadata name/value attributes against fp. */
62af7d
-int set_file_metadata (const char *origin_url, const char *referrer_url, FILE *fp);
62af7d
+int set_file_metadata (const struct url *origin_url, const struct url *referrer_url, FILE *fp);
62af7d
 
62af7d
 #if defined(__linux)
62af7d
 /* libc on Linux has fsetxattr (5 arguments). */
62af7d
-- 
62af7d
2.17.2
62af7d