[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[lintian] 01/01: L::Util: Fix bug in normalise_pkg_path



This is an automated email from the git hooks/post-receive script.

nthykier pushed a commit to branch master
in repository lintian.

commit cb849a8c6cf1aa66e39d97567ff923e2641e63d6
Author: Niels Thykier <niels@thykier.net>
Date:   Tue Aug 6 10:03:07 2013 +0200

    L::Util: Fix bug in normalise_pkg_path
    
    Properly filter out "."-entries as they are just a "noisy" way of
    writing "no change".
    
    Signed-off-by: Niels Thykier <niels@thykier.net>
---
 debian/changelog              |    3 +++
 lib/Lintian/Util.pm           |    3 ++-
 t/scripts/Lintian/Util/path.t |    6 +++---
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 09ac097..5b56105 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -74,6 +74,9 @@ lintian (2.5.16) UNRELEASED; urgency=low
   * lib/Lintian/Tags.pm:
     + [NT] Take over some handling of overrides from the
       frontend.
+  * lib/Lintian/Util.pm:
+    + [NT] Fix problem in normalize_pkg_path, where "."-entries
+      were not properly filtered out.
 
  -- Niels Thykier <niels@thykier.net>  Wed, 24 Jul 2013 10:30:01 +0200
 
diff --git a/lib/Lintian/Util.pm b/lib/Lintian/Util.pm
index 3b94b8d..03c497f 100644
--- a/lib/Lintian/Util.pm
+++ b/lib/Lintian/Util.pm
@@ -1183,7 +1183,8 @@ sub normalize_pkg_path {
             pop @cc;
         } else {
             # usr/share + java -> usr/share/java
-            push @cc, $target;
+            # but usr/share + "." -> usr/share
+            push @cc, $target if $target ne '.';
         }
     }
     return q{} unless @cc;
diff --git a/t/scripts/Lintian/Util/path.t b/t/scripts/Lintian/Util/path.t
index c0aa2a5..58e0bdf 100644
--- a/t/scripts/Lintian/Util/path.t
+++ b/t/scripts/Lintian/Util/path.t
@@ -13,9 +13,9 @@ is(normalize_pkg_path('/usr/share/java', '/usr/share/ant/file'), 'usr/share/ant/
 is(normalize_pkg_path('/usr/share/ant', '/'), q{}, 'Safe absolute root');
 
 # Safe - relative
-is(normalize_pkg_path('/usr/share/java', './file'), 'usr/share/java/file', 'Safe simple same-dir path');
-is(normalize_pkg_path('/usr/share/java', '../ant/file'), 'usr/share/ant/file', 'Safe simple relative path');
-is(normalize_pkg_path('/usr/share/java', '../../../usr/share/ant/file'), 'usr/share/ant/file', 'Safe absurd relative path');
+is(normalize_pkg_path('/usr/share/java', './file/.'), 'usr/share/java/file', 'Safe simple same-dir path');
+is(normalize_pkg_path('/usr/share/java', '../ant/./file'), 'usr/share/ant/file', 'Safe simple relative path');
+is(normalize_pkg_path('/usr/share/java', '../../../usr/./share/../share/./ant/file'), 'usr/share/ant/file', 'Safe absurd relative path');
 is(normalize_pkg_path('/usr/share/java', '.'), 'usr/share/java', 'Safe relative dot path');
 is(normalize_pkg_path('/', '.'), q{}, 'Safe relative root dot');
 is(normalize_pkg_path('/', 'usr/..'), q{}, 'Safe absurd relative root path');

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git


Reply to: