Process to fix a broken CPAN module?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
I have found a major flaw in a CPAN package.  The package is
File::Binary and it has big endian and little endian unpack-ing
backwards.  Likewise, all the test files are reversed so that the
tests all pass!

Why do I believe this is true?

From the perl manual on pack:
n,N unpacks a 16 or 32 bit integer in "network" or big endian order
v,V unpacks a 16 or 32 bit integer in "VAX" or little endian order

From the code:
    if ($endian == $BIG_ENDIAN) {
        $self-> = 'v';
        $self-> = 'V';
    } else {
        $self-> = 'n';
        $self-> = 'N';

When I 'od -x' the test files, they are clearly reversed:

od -x be.power10.n32.ints
0000000      ffff    ffff    f6ff    ffff    9cff    ffff    18fc
0000020      f0d8    ffff    6079    feff    c0bd    f0ff    8069
0000040      001f    0afa    0036    65c4

From the test file ".../File-Binary-1.7/t/":
is($bin->get_si32(),-1);      # 0xffffffff in B.E.
is($bin->get_si32(),-10);    # 0xfffffff6 in B.E.
is($bin->get_si32(),-100);  # 0xffffff9c in B.E.
is($bin->get_si32(),-1000);  # 0xffff18fc in B.E.

so clearly this file contains little-endian integers.

OK, so there is a mistake here -- I would like to submit a fix to all
this -- my question is how do I go about doing this?  I have contacted
the author, but no response.

Any help/guidance would be appreciated.  When I get this fixed, then
I'll be able to submit my new module to CPAN (my first attempt).


Re: Process to fix a broken CPAN module? wrote:
Quoted text here. Click to load it

I hope you do realize that 'od -x' does reverse the bytes when
used on a little endian system. Just create a file that only
contains two letter, e.g. first 'a' and then 'b'. Now look at
the file with 'od -x' and you will find (at least if you're
on a little endian system)

0000000 6261

i.e. the 'b' seems to come first and only then the 'a'.
That's because the '-x' option makes od deal with two
bytes at once. If you want to see what's really in the
file in a byte-by-byte fashion use instead

od -t x1 filename

(or e.g. load the file into emacs and switch to hexl-mode).

Quoted text here. Click to load it

It looks as if the module is actively maintained (the last
version was uploaded on Aril 1st, 2008). How long did you
give the author to reply? Did you consider that he could
be on vacation and not able to read emails at the moment?

                            Best regards, Jens
  \   Jens Thoms Toerring  ___

Re: Process to fix a broken CPAN module?

Jens Thoms Toerring wrote:
Quoted text here. Click to load it

Which CPAN module are you taking about ?. Every CPAN module has a link
'Report a bug' where you can log a bug. Try it out may be you might
get some response

Site Timeline