Bug#749403: liblas: Conflicting declarations of print_header to cause stack underflow
Michael Tautschnig
mt at debian.org
Mon May 26 18:42:59 UTC 2014
Package: liblas
Version: 1.7.0+dfsg-5
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.
[...]
/usr/bin/cc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro CMakeFiles/las2txt-old.dir/lascommon.c.o CMakeFiles/las2txt-old.dir/las2txt.c.o -o ../bin/None/las2txt-old -rdynamic ../bin/None/liblas_c.so.2.2.0 ../bin/None/liblas.so.2.2.0 -ltiff -lgeotiff -lgdal -lboost_program_options -lboost_thread -lboost_system -lpthread -Wl,-rpath,/srv/jenkins-slave/workspace/sid-goto-cc-liblas/liblas-1.7.0+dfsg/obj-x86_64-linux-gnu/bin/None:
error: conflicting function declarations "print_header"
old definition in module lascommon file /srv/jenkins-slave/workspace/sid-goto-cc-liblas/liblas-1.7.0+dfsg/apps/lascommon.c line 407
void (struct _IO_FILE *file, struct LASHeaderHS *header, const char *file_name, signed int bSkipVLR, signed int bWKT)
new definition in module las2txt file /srv/jenkins-slave/workspace/sid-goto-cc-liblas/liblas-1.7.0+dfsg/apps/las2txt.c line 21
void (struct _IO_FILE *, struct LASHeaderHS *, const char *)
apps/CMakeFiles/las2txt-old.dir/build.make:122: recipe for target 'bin/None/las2txt-old' failed
make[4]: *** [bin/None/las2txt-old] Error 64
Indeed there is some variety to be found here. The implementation requires 5
arguments, all of which are actually used (the last ones to make branch
decisions, which will entirely undefined in the following setting):
http://sources.debian.net/src/liblas/1.7.0+dfsg-5/apps/lascommon.c?hl=407#L407
Then there's the 3-argument version here:
http://sources.debian.net/src/liblas/1.7.0+dfsg-5/apps/las2txt.c?hl=21#L21
And a 4-argument version here:
http://sources.debian.net/src/liblas/1.7.0+dfsg-5/apps/lasmerge.c?hl=25#L25
Function calls for all versions exist, so some good amount of undefined
behaviour to be observed.
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-grass-devel/attachments/20140526/510a0ede/attachment.sig>
More information about the Pkg-grass-devel
mailing list