Package: ppp
Version: 2.4.6-2
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 -Wl,-z,relro -Wl,-z,now -Wl,-E -o pppd main.o magic.o fsm.o lcp.o ipcp.o 
upap.o chap-new.o md5.o ccp.o ecp.o auth.o options.o demand.o utils.o 
sys-linux.o ipxcp.o tty.o eap.o chap-md5.o session.o md4.o chap_ms.o sha1.o 
pppcrypt.o multilink.o tdb.o spinlock.o ipv6cp.o eui64.o cbcp.o  -lcrypt -lutil 
-lpam -ldl -ldl -lpcap

error: conflicting function declarations "fsm_sdata"
old definition in module fsm file fsm.c line 796
void (struct fsm *f, unsigned char code, unsigned char id, unsigned char *data, 
signed int datalen)
new definition in module lcp file fsm.h line 162
void (struct fsm *, signed int, signed int, unsigned char *, signed int)
Makefile:220: recipe for target 'pppd' failed
make[2]: *** [pppd] Error 64
make[2]: Leaving directory 
'/srv/jenkins-slave/workspace/sid-goto-cc-ppp/ppp-2.4.6/pppd'
Makefile:13: recipe for target 'all' failed
make[1]: *** [all] Error 2

Observe the difference on parameters code and id - these will cause undefined
behaviour in (at least) one of two ways: either values are larger than 255, in
which case they will unknowingly be truncated; even if all values fit that
range, big endian systems will pick the wrong bytes from the input arguments.

Fixing the declaration in fsm.h should solve the problem, assuming all values
fit into unsigned char.

Best,
Michael

Attachment: pgpUyvh0iPZDA.pgp
Description: PGP signature

Reply via email to