Strip user/password from URL in error message.
authorEugene V. Lyubimkin <jackyf@1501-debian>
Sat, 25 Oct 2008 14:03:16 +0000 (17:03 +0300)
committerEugene V. Lyubimkin <jackyf@1501-debian>
Sat, 25 Oct 2008 14:03:16 +0000 (17:03 +0300)
apt-pkg/algorithms.cc
debian/changelog

index 2e2a976..bd59a47 100644 (file)
@@ -23,6 +23,7 @@
     
 #include <apti18n.h>
 #include <sys/types.h>
+#include <regex.h>
 #include <cstdlib>
 #include <algorithm>
 #include <iostream>
@@ -1342,7 +1343,22 @@ bool ListUpdate(pkgAcquireStatus &Stat,
 
       (*I)->Finished();
 
-      _error->Warning(_("Failed to fetch %s  %s\n"),(*I)->DescURI().c_str(),
+         // stripping username/password from URI if present
+         string descUri = (*I)->DescURI();
+         regex_t userPassRegex;
+         regcomp(&userPassRegex, "\\://(\\w+)\\:(\\w+)@", REG_EXTENDED);
+         regmatch_t userPassMatch;
+         regexec(&userPassRegex, descUri.c_str(), 1, &userPassMatch, 0);
+         if (userPassMatch.rm_so != -1) // regexp matched
+         {
+         // really stripping
+                size_t stripStart = userPassMatch.rm_so + 3;
+                size_t stripEnd = userPassMatch.rm_eo;
+                descUri = descUri.substr(0, stripStart) +
+            descUri.substr(stripEnd, string::npos);
+      }
+
+      _error->Warning(_("Failed to fetch %s  %s\n"), descUri.c_str(),
              (*I)->ErrorText.c_str());
 
       if ((*I)->Status == pkgAcquire::Item::StatTransientNetworkError) 
index 5c2c5f2..40e1cc2 100644 (file)
@@ -4,6 +4,9 @@ apt (0.7.17) unstable; urgency=low
   * apt-pkg/acquire-item.cc:
     - Added fallback to uncompressed 'Packages' if neither 'bz2' nor 'gz'
       available. (Closes: #409284)
+  * apt-pkg/algorithm.cc:
+    - Strip username and password from source URL in error message.
+      (Closes: #425150)
 
  -- Eugene V. Lyubimkin <jackyf.devel@gmail.com>  Fri, 24 Oct 2008 23:45:17 +0300