Package: avrp
Version: 1.0beta3-7
Usertags: goto-cc

During a rebuild of all Debian packages in a clean sid chroot (using cowbuilder
and 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.

[...]
gcc -o avrp avrp.o io_linux.o talking.o file.o memtalk.o args.o stdextra.o 
-Wl,-z,relro

error: conflicting function declarations "nocase_strcmp"
old definition in module avrp file avrp.h line 223
char * (char *, char *)
new definition in module stdextra file stdextra.c line 15
signed int (char *s, char *t)
Makefile.linux:36: recipe for target 'avrp' failed
make[1]: *** [avrp] Error 64

For any architecture with sizeof(char*)!=sizeof(int), the result value will have
several undefined bytes. As all calls to nocase_strcmp just do an is-zero
comparison, the branch decisions will be arbitrary.

The fix, however, is trivial: change the return value of nocase_strcmp (and also
nocase_strncmp) to int in avrp.h:

http://sources.debian.net/src/avrp/1.0beta3-7/avrp.h?hl=223#L223

Best,
Michael

Attachment: pgpgoTHjaDIK5.pgp
Description: PGP signature

Reply via email to