Bug#747964: Conflicting return types of function envargs with undefined behaviour

Michael Tautschnig mt at debian.org
Tue May 13 11:02:55 UTC 2014


Package: boinc
Version: 7.2.42+dfsg-1
Usertags: goto-cc

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

[...]
libtool: link: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o  .libs/boinc_zip.o .libs/api.o .libs/apihelp.o .libs/crc32.o .libs/explode.o .libs/extract.o .libs/fileio.o .libs/globals.o .libs/inflate.o .libs/list.o .libs/match.o .libs/process.o .libs/ttyio.o .libs/unix.o .libs/unreduce.o .libs/unshrink.o .libs/unzip.o .libs/zipinfo.o .libs/deflate.o .libs/trees.o .libs/util.o .libs/z_fileio.o .libs/z_globals.o .libs/zip.o .libs/zipfile.o .libs/zipup.o .libs/z_unix.o   -L/usr/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.8/crtfastmath.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o  -O0 -Wl,-z -Wl,relro -Wl,-z -Wl,now -flto -Wl,--no-add-needed   -Wl,-soname -Wl,libboinc_zip.so.7 -o .libs/libboinc_zip.so.7.2.42

error: conflicting function declarations "envargs"
old definition in module unzip file ./unzip/unzpriv.h line 2575
signed int (signed int *, char ***, const char *, const char *)
new definition in module util file ./zip/util.c line 805
void (signed int *Pargc, char ***Pargv, char *envstr, char *envstr2)
Makefile:667: recipe for target 'libboinc_zip.la' failed
make[3]: *** [libboinc_zip.la] Error 1
make[3]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-boinc/boinc-7.2.42+dfsg/zip'
Makefile:961: recipe for target 'all-recursive' failed

This conflict does result in undefined behaviour, because the (presumed) return
value is actually used for error reporting (in zip/unzip/unzip.c lines 1055 and
1064). As the actual implementation (in util.c), however, does not return a
value, spurious errors will be reported or true errors ignored.

Best,
Michael

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 859 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-boinc-devel/attachments/20140513/69eea8c1/attachment.sig>


More information about the pkg-boinc-devel mailing list