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
pgpUyvh0iPZDA.pgp
Description: PGP signature