[Debian-med-packaging] Bug#747185: Conflicting return types of function DejaVu_create
Michael Tautschnig
mt at debian.org
Tue May 6 08:56:52 UTC 2014
Package: exonerate
Version: 2.2.0-6
Usertags: goto-cc
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.
error: conflicting function declarations "DejaVu_create"
old definition in module bsam file ../../src/struct/dejavu.h line 42
DejaVu *DejaVu_create(gchar *seq, gint len)
new definition in module dejavu file dejavu.c line 26
DejaVu *DejaVu_create(gchar *seq, gint len)
reason for conflict at nil.symbol_list in types listed below (array/array):
signed int [2048]
signed int [256]
This is with the following code in dejavu.h:
http://sources.debian.net/src/exonerate/2.2.0-6/src/struct/dejavu.h?hl=26,27,28,30,31,32,33,34,35,36#L26
#ifndef ALPHABET_SIZE
#define ALPHABET_SIZE (1 << CHAR_BIT)
#endif /* ALPHABET_SIZE */
typedef struct {
gchar *seq;
gint len;
gint *next;
gint symbol_list[ALPHABET_SIZE];
gint symbol_list_len;
} DejaVu;
Unfortunately, however, a cruel mix of definitions is used for ALPHABET_SIZE
throughout the codebase of exonerate:
http://codesearch.debian.net/search?q=package%3Aexonerate+ALPHABET_SIZE
Any code relying on the size of the symbol_list array will break as it will
access invalid memory; accesses to the symbol_list_len element are invalid as
its offset will be wrong.
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/debian-med-packaging/attachments/20140506/14c642ba/attachment.sig>
More information about the Debian-med-packaging
mailing list