Package: bootp
Version: 2.4.3-18
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.

[...]
cc -o bootpd bootpd.o dovend.o readfile.o hash.o dumptab.o lookup.o getif.o 
hwaddr.o tzone.o report.o  

error: conflicting function declarations "insert_ip"
old definition in module bootpd file dovend.h line 12
signed int (signed int, struct in_addr_list *, unsigned char **, signed int *)
new definition in module dovend file dovend.c line 292
signed int (unsigned char tag, struct in_addr_list *iplist, unsigned char 
**dest, signed int *bytesleft)
Makefile:145: recipe for target 'bootpd' failed
make[1]: *** [bootpd] Error 64

Observe the type difference on the first parameter - this will result in
undefined behaviour as only one of the bytes of an int will be used. Even if all
values fit into the range of a single byte, at least big endian systems will
pick from the wrong end of the byte range, resulting in arbitrary values being
passed.

Best,
Michael

Attachment: pgpSsz3ZaNF_w.pgp
Description: PGP signature

Reply via email to