Package: ftpcopy
Version: 0.6.7-3
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.

[...]
./auto-link.sh ftpcopy  ftpcopy.o ftpparse.o ftplib.o ftp_read_lis.o urlparse.o 
canon.o common.o mdtm.o mysleep.o warn_broken.o eof_or_error.o utcdate2tai.o 
sockrecbuf.o ssort.o inq_winsize.o libuotime.a libuomisc.a libdns.a 
libstrhash.a libunix.a libtai.a libbyte.a `head -n 1 auto-socket.lib` `head -n 
1 auto-fsync.lib` `head -n 1 auto-utimes.lib` `head -n 1 auto-gettimeofday.lib` 

error: conflicting function declarations "read"
old definition in module ftpcopy file readwrite.h line 7
signed int (signed int, char *, unsigned int)
new definition in module dns_transmit file /usr/include/unistd.h line 360
signed long int (signed int, void *, unsigned long int)
Makefile:102: recipe for target 'ftpcopy' failed
make[1]: *** [ftpcopy] Error 64
make[1]: Leaving directory 
'/srv/jenkins-slave/workspace/sid-goto-cc-ftpcopy/ftpcopy-0.6.7/web/ftpcopy-0.6.7/compile'
debian/rules:37: recipe for target 'build-arch-stamp' failed
make: *** [build-arch-stamp] Error 1

Declaring function of the C library rather than using system header files is
rarely a good idea. This is a particularly dangerous example: for any platform
with sizeof(unsigned)<sizeof(unsigned long), several bytes of the their
parameter will take an arbitrary value. Also, the return value ought to be
adjusted - or, really, a proper header file be used.

Best,
Michael

Attachment: pgpjHuj7pw8Zh.pgp
Description: PGP signature

Reply via email to