Bug#30985: Invalid perl in /usr/sbin/install-info
Package: dpkg
Version: 1.4.0.31
The Perl script "/usr/sbin/install-info" contains a construct which is
illegal in Perl. From line 222:
do {
last if !@work;
$_= shift(@work);
push(@head,$_);
} until (m/^\*\s*Menu:/i);
do { } is not a loop block (it just looks like one), and therefore the
"last" statement is not valid here. This was triggered in my case by a
corrupted info "dir" file, which caused "@work" to end up empty, and the
script tried to execute the "last", and failed.
A better way of writing the loop in question might be:
while (@work) {
push(@head, $_ = shift(@work));
last if m/^\*\s*Menu:/i;
}
Colm
--
Colm Buckley B.A. B.F. # Computer Science, Trinity College, Dublin 2, Ireland.
colm@tuatha.org | colm@lspace.org # +353 87 2469146 # whois cb3765
http://www.tuatha.org/~colm/ # finger colm@tuatha.org
Early bird gets the worm, but the second mouse gets the cheese.
Reply to: