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

Bug#861525: unblock: lintian/2.5.50.2



Niels Thykier:
> Package: release.debian.org
> Severity: normal
> User: release.debian.org@packages.debian.org
> Usertags: unblock
> 
> Please unblock package lintian
> 
> The 2.5.50.2 unload works around a "perl stack" corruption (not to be
> confused with perl's C stack) and makes a gnuplot file compability
> with gnuplot 5 (so it works with the version we are shipping in
> stretch).
> 
> I will expand on the stack corruption below in case it is relevant for
> your understanding of the issue and the fix[1]. That said, the fix is
> shorter than my explanation, so you may just want to skip ahead to the
> debdiff.
> 
> unblock lintian/2.5.50.2
> 
> Thanks,
> ~Niels
> 
> [...]


Fumble-fingered reportbug, here is the debdiff.  The upload is in the
queue and should be ACCEPTed soon. :)

Thanks,
~Niels

diff -Nru lintian-2.5.50.1/debian/changelog lintian-2.5.50.2/debian/changelog
--- lintian-2.5.50.1/debian/changelog	2017-02-04 16:05:07.000000000 +0100
+++ lintian-2.5.50.2/debian/changelog	2017-04-30 09:40:24.000000000 +0200
@@ -1,3 +1,16 @@
+lintian (2.5.50.2) unstable; urgency=medium
+
+  * frontend/dplint:
+    + [NT] Work around a "Bizarre Copy" bug in perl that could trigger
+      on errors.  Notably, this bug causes the reporting framework in
+      lintian to break with a very non-informative error when the
+      "state-cache" is not present.
+
+  * reporting/graphs/tags.gpi:
+    + [NT] Tweak tags.gpi so it works with gnuplot 5.
+
+ -- Niels Thykier <niels@thykier.net>  Sun, 30 Apr 2017 07:40:24 +0000
+
 lintian (2.5.50.1) unstable; urgency=medium
 
   * debian/copyright:
diff -Nru lintian-2.5.50.1/frontend/dplint lintian-2.5.50.2/frontend/dplint
--- lintian-2.5.50.1/frontend/dplint	2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/dplint	2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
 }
 
 sub run_tool {
-    my ($truename, $tool, @args) = @_;
+    my ($truename, $tool) = @_;
     for my $include_dir (@INCLUDE_DIRS) {
         my $tool_path = "$include_dir/commands/${tool}";
         my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
             }
             {
                 # Scope here it to avoid a warning about exec not returning.
-                exec {$tool_path} $truename, @args;
+                exec {$tool_path} $truename, @ARGV;
             }
             local $" = ' ';
             error(
                 "Running $tool failed!",
-                "  Command: $tool_path @args",
+                "  Command: $tool_path @ARGV",
                 "  Error from exec: $!"
             );
         }
@@ -273,7 +273,7 @@
         error("Built-in $cmd returned unexpectedly");
     }
     $truename //= $cmd;
-    run_tool($truename, $cmd, @ARGV);
+    run_tool($truename, $cmd);
     error('run_tool returned unexpectedly');
 }
 
diff -Nru lintian-2.5.50.1/frontend/lintian lintian-2.5.50.2/frontend/lintian
--- lintian-2.5.50.1/frontend/lintian	2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/lintian	2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
 }
 
 sub run_tool {
-    my ($truename, $tool, @args) = @_;
+    my ($truename, $tool) = @_;
     for my $include_dir (@INCLUDE_DIRS) {
         my $tool_path = "$include_dir/commands/${tool}";
         my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
             }
             {
                 # Scope here it to avoid a warning about exec not returning.
-                exec {$tool_path} $truename, @args;
+                exec {$tool_path} $truename, @ARGV;
             }
             local $" = ' ';
             error(
                 "Running $tool failed!",
-                "  Command: $tool_path @args",
+                "  Command: $tool_path @ARGV",
                 "  Error from exec: $!"
             );
         }
@@ -273,7 +273,7 @@
         error("Built-in $cmd returned unexpectedly");
     }
     $truename //= $cmd;
-    run_tool($truename, $cmd, @ARGV);
+    run_tool($truename, $cmd);
     error('run_tool returned unexpectedly');
 }
 
diff -Nru lintian-2.5.50.1/frontend/lintian-info lintian-2.5.50.2/frontend/lintian-info
--- lintian-2.5.50.1/frontend/lintian-info	2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/lintian-info	2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
 }
 
 sub run_tool {
-    my ($truename, $tool, @args) = @_;
+    my ($truename, $tool) = @_;
     for my $include_dir (@INCLUDE_DIRS) {
         my $tool_path = "$include_dir/commands/${tool}";
         my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
             }
             {
                 # Scope here it to avoid a warning about exec not returning.
-                exec {$tool_path} $truename, @args;
+                exec {$tool_path} $truename, @ARGV;
             }
             local $" = ' ';
             error(
                 "Running $tool failed!",
-                "  Command: $tool_path @args",
+                "  Command: $tool_path @ARGV",
                 "  Error from exec: $!"
             );
         }
@@ -273,7 +273,7 @@
         error("Built-in $cmd returned unexpectedly");
     }
     $truename //= $cmd;
-    run_tool($truename, $cmd, @ARGV);
+    run_tool($truename, $cmd);
     error('run_tool returned unexpectedly');
 }
 
diff -Nru lintian-2.5.50.1/frontend/lintian-lab-tool lintian-2.5.50.2/frontend/lintian-lab-tool
--- lintian-2.5.50.1/frontend/lintian-lab-tool	2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/lintian-lab-tool	2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
 }
 
 sub run_tool {
-    my ($truename, $tool, @args) = @_;
+    my ($truename, $tool) = @_;
     for my $include_dir (@INCLUDE_DIRS) {
         my $tool_path = "$include_dir/commands/${tool}";
         my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
             }
             {
                 # Scope here it to avoid a warning about exec not returning.
-                exec {$tool_path} $truename, @args;
+                exec {$tool_path} $truename, @ARGV;
             }
             local $" = ' ';
             error(
                 "Running $tool failed!",
-                "  Command: $tool_path @args",
+                "  Command: $tool_path @ARGV",
                 "  Error from exec: $!"
             );
         }
@@ -273,7 +273,7 @@
         error("Built-in $cmd returned unexpectedly");
     }
     $truename //= $cmd;
-    run_tool($truename, $cmd, @ARGV);
+    run_tool($truename, $cmd);
     error('run_tool returned unexpectedly');
 }
 
diff -Nru lintian-2.5.50.1/frontend/spellintian lintian-2.5.50.2/frontend/spellintian
--- lintian-2.5.50.1/frontend/spellintian	2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/frontend/spellintian	2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
 }
 
 sub run_tool {
-    my ($truename, $tool, @args) = @_;
+    my ($truename, $tool) = @_;
     for my $include_dir (@INCLUDE_DIRS) {
         my $tool_path = "$include_dir/commands/${tool}";
         my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
             }
             {
                 # Scope here it to avoid a warning about exec not returning.
-                exec {$tool_path} $truename, @args;
+                exec {$tool_path} $truename, @ARGV;
             }
             local $" = ' ';
             error(
                 "Running $tool failed!",
-                "  Command: $tool_path @args",
+                "  Command: $tool_path @ARGV",
                 "  Error from exec: $!"
             );
         }
@@ -273,7 +273,7 @@
         error("Built-in $cmd returned unexpectedly");
     }
     $truename //= $cmd;
-    run_tool($truename, $cmd, @ARGV);
+    run_tool($truename, $cmd);
     error('run_tool returned unexpectedly');
 }
 
diff -Nru lintian-2.5.50.1/reporting/graphs/tags.gpi lintian-2.5.50.2/reporting/graphs/tags.gpi
--- lintian-2.5.50.1/reporting/graphs/tags.gpi	2016-09-25 20:21:58.000000000 +0200
+++ lintian-2.5.50.2/reporting/graphs/tags.gpi	2017-04-29 19:53:57.000000000 +0200
@@ -1,4 +1,4 @@
-tag="$0"
+tag=sprintf("%s", ARG1)
 # set terminal png truecolor small size 600,300
 set terminal svg size 640,375 font "Sans,11"
 
diff -Nru lintian-2.5.50.1/reporting/harness lintian-2.5.50.2/reporting/harness
--- lintian-2.5.50.1/reporting/harness	2017-01-29 21:00:48.000000000 +0100
+++ lintian-2.5.50.2/reporting/harness	2017-04-30 09:34:30.000000000 +0200
@@ -82,7 +82,7 @@
 }
 
 sub run_tool {
-    my ($truename, $tool, @args) = @_;
+    my ($truename, $tool) = @_;
     for my $include_dir (@INCLUDE_DIRS) {
         my $tool_path = "$include_dir/commands/${tool}";
         my $tool_pm_path = "${tool_path}.pm";
@@ -92,12 +92,12 @@
             }
             {
                 # Scope here it to avoid a warning about exec not returning.
-                exec {$tool_path} $truename, @args;
+                exec {$tool_path} $truename, @ARGV;
             }
             local $" = ' ';
             error(
                 "Running $tool failed!",
-                "  Command: $tool_path @args",
+                "  Command: $tool_path @ARGV",
                 "  Error from exec: $!"
             );
         }
@@ -273,7 +273,7 @@
         error("Built-in $cmd returned unexpectedly");
     }
     $truename //= $cmd;
-    run_tool($truename, $cmd, @ARGV);
+    run_tool($truename, $cmd);
     error('run_tool returned unexpectedly');
 }
 

Reply to: