From: | CARNIL [...] cpan.org |
Subject: | Conflicting types for function blowfish_make_bfkey |
Hi,
We have the following bug reported to the Debian package of
Crypt-Blowfish (https://bugs.debian.org/749145):
It doesn't seem to be a bug in the packaging, so you may want to take
a look. Thanks!
------8<-----------8<-----------8<-----------8<-----------8<-----
Package: libcrypt-blowfish-perl
Version: 2.14-1
Severity: wishlist
Usertags: goto-cc
Tags: upstream
During a rebuild of all packages in a clean sid chroot (and
cowbuilder+pbuilder)
the build failed with the following error. Please note that we use
our research
compiler tool-chain (using tools from the cbmc package), which
permits extended
reporting on type inconsistencies at link time.
[...]
cc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat
-Werror=format-security -Wl,-z,relro -shared -L/usr/local/lib
-fstack-protector Blowfish.o _blowfish.o -o
blib/arch/auto/Crypt/Blowfish/Blowfish.so \
\
error: conflicting function declarations "blowfish_make_bfkey"
old definition in module Blowfish file blowfish.h line 5
signed int (char *, signed int, char *)
new definition in module _blowfish file _blowfish.c line 400
signed int (unsigned char *key_string, signed int keylength,
BFkey_type *bfkey)
Makefile:473: recipe for target
'blib/arch/auto/Crypt/Blowfish/Blowfish.so' failed
make[1]: *** [blib/arch/auto/Crypt/Blowfish/Blowfish.so] Error 64
make[1]: Leaving directory
'/srv/jenkins-slave/workspace/sid-goto-cc-libcrypt-blowfish-perl/libcrypt-blowfish-perl-2.14'
dh_auto_build: make -j1 returned exit code 2
The pair of declaration and definition should be improved in two ways
to enable
appropriate compiler diagnostics and to avoid future issues:
- The key_string parameter should become consistent regarding
signedness.
- Using void* instead of char* for the bfkey parameter would make
explicit that
the type is hidden.
Best,
Michael
------8<-----------8<-----------8<-----------8<-----------8<-----
Thanks for considering,
Salvatore Bonaccorso,
Debian Perl Group