Bug#489775: libparams-validate-perl: prototype.patch bug: Undefined subroutine &Params::Validate::_validate called at /usr/lib/perl5/Params/ValidateXS.pm line 131.

Dylan William Hardison dylan at r-stream.com
Mon Jul 7 18:08:54 UTC 2008


Package: libparams-validate-perl
Version: 0.91-1
Severity: grave
Justification: renders package unusable

Lines 131 and 132 of /usr/lib/perl5/Params/ValidateXS.pm are invalid.
They were added in 0.89-3 (UNRELEASED), with a note: 

> NOTE to potential uploaders: please check if debian/patches/prototype.patch is 
> sane and remove it otherwise

debian/patches/prototype.patch is most certainly not sane, and it should
be removed. Removal of this patch fixes the problem.

A more elaborate explaination:

pod-coverage complained about the original source lines, which looked
like this:

> *validate      = \&_validate;
> *validate_pos  = \&_validate_pos;

So, prototype.patch was created, which makes them read this way:


> *validate      = \&_validate(\@$);
> *validate_pos  = \&_validate_pos(\@@);


Perl interpretes "\&_validate(\@$)" as \ (_validate(\@$)), 
which is: passing @$ as a reference to _validate(),
and take a reference to the return value.

This causes the program to die, because at the time it is called,
there is no _validate() function (it is undefined).

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.25-2-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libparams-validate-perl depends on:
ii  libc6                         2.7-11     GNU C Library: Shared libraries
ii  perl                          5.10.0-10  Larry Wall's Practical Extraction 
ii  perl-base [perlapi-5.10.0]    5.10.0-10  The Pathologically Eclectic Rubbis

libparams-validate-perl recommends no packages.

-- no debconf information





More information about the pkg-perl-maintainers mailing list