Bug#579063: libparse-debian-packages-perl: Parse error when description body contains a colon.
G. de la Rey
debian at delarey.org
Sat Apr 24 22:52:45 UTC 2010
Package: libparse-debian-packages-perl
Version: 0.01-1
Severity: normal
Tags: patch
When there is a colon in the text description of a package, parsing fails
by treating it as if a key for the returned hash has been found. So as
well as the normal keys, such as Section, Filename, etc., some random keys
get created occasionally. For instance, the first package in the current
Packages file for sid, 2vcard, comes up with an unexpected key of
'and alias files from the following formats'.
The attached patch fixes this; it also makes next() return a reference to
%package rather than a copy of it, which seems to run more quickly.
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.32-epos (PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages libparse-debian-packages-perl depends on:
ii libyaml-perl 0.71-1 YAML Ain't Markup Language
ii perl 5.10.1-12 Larry Wall's Practical Extraction
libparse-debian-packages-perl recommends no packages.
libparse-debian-packages-perl suggests no packages.
-- no debconf information
-------------- next part --------------
--- Packages.pm.orig 2010-04-24 23:00:15.000000000 +0100
+++ Packages.pm 2010-04-24 23:42:44.000000000 +0100
@@ -15,8 +15,8 @@
my %parsed;
while (<$fh>) {
- last if /^$/;
- if (my ($key, $value) = m/^(.*): (.*)/) {
+ return \%parsed if (/^$/);
+ if (my ($key, $value) = m/^(\S*): (.*)/) {
$parsed{$key} = $value;
}
else {
@@ -26,7 +26,7 @@
}
}
- return %parsed;
+ return;
}
1;
@@ -44,8 +44,8 @@
my $fh = IO::File->new("Packages");
my $parser = Parse::Debian::Packages->new( $fh );
- while (my %package = $parser->next) {
- print Dump \%package;
+ while (my $package = $parser->next) {
+ print Dump \$package;
}
=head1 DESCRIPTION
More information about the pkg-perl-maintainers
mailing list