Package: ipmitool Version: 1.8.14-1 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.
[...] /bin/bash ../libtool --silent --tag=CC --mode=link gcc -Wall -g -O2 -fno-strict-aliasing -Wreturn-type -I /lib/modules/3.2.0-4-amd64/build/include -Wl,-z,relro -o ipmitool ipmitool.o ipmishell.o ../lib/libipmitool.la plugins/libintf.la -lreadline -lncurses -ltinfo -lreadline -lncurses -ltinfo -lcrypto error: conflicting function declarations "write_fru_area" old definition in module ipmi_fru file ipmi_fru.c line 424 signed int (struct ipmi_intf *intf, struct fru_info *fru, unsigned char id, unsigned short int soffset, unsigned short int doffset, unsigned short int length, unsigned char *pFrubuf) new definition in module ipmi_kontronoem file ipmi_kontronoem.c line 55 signed int (struct ipmi_intf *, struct fru_info *, unsigned char, unsigned int, unsigned int, unsigned int, unsigned char *) Makefile:422: recipe for target 'ipmitool' failed make[4]: *** [ipmitool] Error 64 make[4]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-ipmitool/ipmitool-1.8.14/src' Makefile:469: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 Observe the differences on the fourth, fifth, sixth parameter (soffset, doffset, length): for any platform with sizeof(short)<sizeof(int), this will result in undefined behaviour in at least one of two ways: the value is truncated in some way; yet even if the value fits into the smaller type, big endian systems with pick the wrong bytes. All it takes is amending the declaration here: http://sources.debian.net/src/ipmitool/1.8.14-1/lib/ipmi_kontronoem.c?hl=55#L55 Best, Michael
pgp7vTuyvdA8s.pgp
Description: PGP signature

