[Filesystems-devel] Bug#751620: squashfs-tools: Conflicting pointer/non-pointer types of variable restore_thread

Michael Tautschnig mt at debian.org
Sat Jun 14 19:11:11 UTC 2014


Package: squashfs-tools
Version: 1:4.2+20130409-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  mksquashfs.o read_fs.o sort.o swap.o pseudo.o compressor.o action.o progressbar.o read_file.o info.o restore.o caches-queues-lists.o gzip_wrapper.o xz_wrapper.o lzo_wrapper.o xattr.o read_xattrs.o -lpthread -lm -lz -llzma  -llzo2 -o mksquashfs

file restore.c line 45: error: conflicting types for variable "restore_thread"
old definition in module mksquashfs file mksquashfs.c line 280
unsigned long int *
new definition in module restore file restore.c line 45
unsigned long int
Makefile:204: recipe for target 'mksquashfs' failed
make[2]: *** [mksquashfs] Error 64
make[2]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-squashfs-tools/squashfs-tools-4.2+20130409'
dh_auto_build: make -j1 returned exit code 2
debian/rules:16: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 2

There is some serious inconsistency between the way mksquashfs.c uses
restore_thread and restore.c's way of using that very same object. The following
yields the most fun:

http://sources.debian.net/src/squashfs-tools/1:4.2+20130409-2/mksquashfs.c?hl=5440#L5440

Effectively this call will write the address of restore_thread into
restore_thread, killing off all data previously stored in restore_thread.
Consequently the following branch is unreachable:

http://sources.debian.net/src/squashfs-tools/1:4.2+20130409-2/mksquashfs.c?hl=352#L352

And there may be other errors.

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/filesystems-devel/attachments/20140614/db7438c4/attachment.sig>


More information about the Filesystems-devel mailing list