Bug#749145: Conflicting types for function blowfish_make_bfkey

Michael Tautschnig mt at debian.org
Sat May 24 14:19:47 UTC 2014


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 859 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-perl-maintainers/attachments/20140524/f9b9ed65/attachment-0001.sig>


More information about the pkg-perl-maintainers mailing list