[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: