[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#749433: mtink: Conflicting declarations of function devRead to cause undefined behaviour



Package: mtink
Version: 1.0.16-8
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.

[...]
Link mtink

error: conflicting function declarations "devRead"
old definition in module rw file mainSrc/rw.c line 93
signed long int (signed int fd, unsigned char *buf, unsigned long int sz, signed int to)
new definition in module cmd file mainSrc/cmd.h line 73
signed int (signed int, unsigned char *, signed int, signed int)
Makefile:233: recipe for target 'mtink' failed
make[1]: *** [mtink] Error 64
make[1]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-mtink/mtink-1.0.16'
/usr/share/cdbs/1/class/makefile.mk:47: recipe for target 'debian/stamp-makefile-build' failed
make: *** [debian/stamp-makefile-build] Error 2

Rather than relying on rw.h, which has the correct declarations, cmd.h has this:

http://sources.debian.net/src/mtink/1.0.16-8/mainSrc/cmd.h?hl=73#L73

Consequently the calls to devRead defined here

http://sources.debian.net/src/mtink/1.0.16-8/mainSrc/rw.c?hl=93#L93

will face several problems:

- The value of sz will be undefined for any system with
  sizeof(long)>sizeof(int);
- the return value will be messed up (at least) on big endian systems

Best,
Michael

Attachment: pgpXN4Tb0pf7T.pgp
Description: PGP signature


Reply to: