This is an automated email from the git hooks/post-receive script. nthykier pushed a commit to branch master in repository lintian.
commit dca1fa7798ac49c7a30b861cb401f9b387772f5f Author: Niels Thykier <[email protected]> Date: Sun Apr 30 11:24:22 2017 +0000 t: Provide a more convincing corrupt zip file Signed-off-by: Niels Thykier <[email protected]> --- debian/changelog | 3 ++ t/tests/java-jars/debian/debian/rules | 4 +-- t/tests/java-jars/debian/generate-unparsable.pl | 37 +++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 08b86ce..db7130e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -157,6 +157,9 @@ lintian (2.5.51) UNRELEASED; urgency=medium + [EB] Fix failing tests by making the fake flash object more convincing. The most recent version of libmagic uses a more precise definition of the data within a flash file. (Closes: #852891) + * t/tests/java-jars: + + [NT] Provide a more convincing corrupt .zip file that also fools + file 5.30. * vendors/ubuntu/main/data/changes-file/known-dists: + [CW] Add zesty. diff --git a/t/tests/java-jars/debian/debian/rules b/t/tests/java-jars/debian/debian/rules index b4951f9..4811f4b 100755 --- a/t/tests/java-jars/debian/debian/rules +++ b/t/tests/java-jars/debian/debian/rules @@ -8,10 +8,10 @@ override_jh_build: unzip testa.jar zip -r codeless.jar META-INF/ zip -r manifestless.jar org/ - printf "PK\003\004Watch the fireworks begin :>" > unparsable.jar + perl generate-unparsable.pl +# Skip - it chokes on "unparsable.jar" and we don't need it override_jh_manifest override_jh_depends override_dh_strip_nondeterminism: - # Skip - it chokes on "unparsable.jar" and we don't need it override_dh_auto_clean: rm -fr META-INF/ org/ diff --git a/t/tests/java-jars/debian/generate-unparsable.pl b/t/tests/java-jars/debian/generate-unparsable.pl new file mode 100644 index 0000000..405d272 --- /dev/null +++ b/t/tests/java-jars/debian/generate-unparsable.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use autodie; + +# Generated with "hexdump -C <valid-file.zip> | head -n 10". Should +# be a valid header of a truncated zip file. This is enough to fool +# file 5.30 and earlier, but will obviously break if you try to parse +# it in full. +my $valid_header = <<'EOF'; +00000000 50 4b 03 04 0a 00 00 00 00 00 4c 59 9e 4a 00 00 |PK........LY.J..| +00000010 00 00 00 00 00 00 00 00 00 00 04 00 1c 00 6f 72 |..............or| +00000020 67 2f 55 54 09 00 03 20 c6 05 59 20 c6 05 59 75 |g/UT... ..Y ..Yu| +00000030 78 0b 00 01 04 e8 03 00 00 04 e8 03 00 00 50 4b |x.............PK| +00000040 03 04 0a 00 00 00 00 00 4c 59 9e 4a 00 00 00 00 |........LY.J....| +00000050 00 00 00 00 00 00 00 00 0b 00 1c 00 6f 72 67 2f |............org/| +00000060 64 65 62 69 61 6e 2f 55 54 09 00 03 20 c6 05 59 |debian/UT... ..Y| +00000070 20 c6 05 59 75 78 0b 00 01 04 e8 03 00 00 04 e8 | ..Yux..........| +00000080 03 00 00 50 4b 03 04 0a 00 00 00 00 00 4c 59 9e |...PK........LY.| +00000090 4a 00 00 00 00 00 00 00 00 00 00 00 00 13 00 1c |J...............| +EOF + +open(my $fd, '>', 'unparsable.jar'); + +for my $line (split(m/\n/, $valid_header)) { + chomp($line); + next if $line =~ s/^\s*+(?:\#.*)?$//; + next if $line !~ s/^[0-9a-fA-F]+\s+//; # Remove leading "offset" + $line =~ s/\s*(?:\|.+\|\s*)?$//; # Remove trailing "display" part (if present) + for my $byte (split(m/\s++/, $line)) { + printf {$fd} '%c', hex($byte); + } +} + +close($fd); + -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git

