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

[lintian] 01/01: Fix udev-rule-missing-subsystem to only watch for SUBSYSTEM GOTOs. (Closes: #894356)



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

lamby pushed a commit to branch master
in repository lintian.

commit 5a18177456bbebcd77d7047a2743e203995e7f8d
Author: Thomas Dallmair <dev@thomas-dallmair.de>
Date:   Wed Mar 21 01:21:30 2018 +0100

    Fix udev-rule-missing-subsystem to only watch for SUBSYSTEM GOTOs. (Closes: #894356)
---
 checks/udev.pm                                   | 4 ++--
 debian/changelog                                 | 4 ++++
 t/tests/udev-rules/debian/debian/udev-rules.udev | 1 +
 t/tests/udev-rules/tags                          | 2 +-
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/checks/udev.pm b/checks/udev.pm
index 07962d4..a47dceb 100644
--- a/checks/udev.pm
+++ b/checks/udev.pm
@@ -78,7 +78,7 @@ sub check_rule {
     # subsystem, as vendor/product is subsystem specific.
     if (   $rule =~ m/ATTR\{idVendor\}=="[0-9a-fA-F]+"/
         && $rule =~ m/ATTR\{idProduct\}=="[0-9a-fA-F]*"/
-        && $in_goto !~ m/SUBSYSTEM!="[^"]+"/
+        && !$in_goto
         && $rule !~ m/SUBSYSTEM=="[^"]+"/) {
         tag(
             'udev-rule-missing-subsystem',
@@ -110,7 +110,7 @@ sub check_udev_rules {
         }
         next if /^#.*/; # Skip comments
         $in_goto = '' if m/LABEL="[^"]+"/;
-        $in_goto = $_ if m/GOTO="[^"]+"/;
+        $in_goto = $_ if m/SUBSYSTEM!="[^"]+"/ && m/GOTO="[^"]+"/;
         $retval |= $check->($file, $linenum, $in_goto, $_);
     }
     close($fd);
diff --git a/debian/changelog b/debian/changelog
index 7cc5e32..3823451 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,10 @@ lintian (2.5.81) UNRELEASED; urgency=medium
     + [CL] Add .ogg files to the list of non-license file extensions to
       avoid a false-positive in extra-license-file. Thanks to Innocent De
       Marchi for the report.  (Closes: #894139)
+  * checks/udev.pm:
+    + [CL] Apply patch from Thomas Dallmair to avoid false positives in the
+      udev-rule-missing-subsystem tag when SUBSYSTEM GOTO is not the last
+      "GOTO" statement.  Thanks!  (Closes: #894356)
 
   * lib/Lintian/Check.pm:
     + [CL] Avoid false positives in spelling detection by allowing "(s)"
diff --git a/t/tests/udev-rules/debian/debian/udev-rules.udev b/t/tests/udev-rules/debian/debian/udev-rules.udev
index 538e174..e35482d 100644
--- a/t/tests/udev-rules/debian/debian/udev-rules.udev
+++ b/t/tests/udev-rules/debian/debian/udev-rules.udev
@@ -17,6 +17,7 @@ SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0000", ATTR{idProduct}=="000a"
     ID_TEST_DEVICE="1"
 
 SUBSYSTEM!="usb", GOTO="target"
+ENV{DEVTYPE}!="usb_device", GOTO="target"
 ATTR{idVendor}=="0000", ATTR{idProduct}=="0000", RUN+="missing-subsystem-false-positive"
 LABEL="target"
 
diff --git a/t/tests/udev-rules/tags b/t/tests/udev-rules/tags
index becee41..29301b8 100644
--- a/t/tests/udev-rules/tags
+++ b/t/tests/udev-rules/tags
@@ -1,5 +1,5 @@
 E: udev-rules: udev-rule-unreadable lib/udev/rules.d/60-dangling-symlink.rules
 W: udev-rules: udev-rule-missing-subsystem lib/udev/rules.d/60-udev-rules.rules:14 vendor/product matching missing SUBSYSTEM specifier
-W: udev-rules: udev-rule-missing-subsystem lib/udev/rules.d/60-udev-rules.rules:24 vendor/product matching missing SUBSYSTEM specifier
+W: udev-rules: udev-rule-missing-subsystem lib/udev/rules.d/60-udev-rules.rules:25 vendor/product matching missing SUBSYSTEM specifier
 W: udev-rules: udev-rule-missing-uaccess lib/udev/rules.d/60-udev-rules.rules:2 user accessible device missing TAG+="uaccess"
 W: udev-rules: udev-rule-missing-uaccess lib/udev/rules.d/60-udev-rules.rules:5 user accessible device missing TAG+="uaccess"

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


Reply to: