[Debian-med-packaging] Bug#748395: Misaligned array access caused by conflicting declarations
Michael Tautschnig
mt at debian.org
Fri May 16 21:01:32 UTC 2014
Package: emboss
Version: 6.6.0-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: gcc -shared -fPIC -DPIC .libs/pdfutils.o .libs/plargs.o .libs/plbox.o .libs/plcont.o .libs/plcore.o .libs/plctrl.o .libs/plcvt.o .libs/pldtik.o .libs/plfill.o .libs/plhist.o .libs/plline.o .libs/plmap.o .libs/plot3d.o .libs/plpage.o .libs/plsdef.o .libs/plshade.o .libs/plsym.o .libs/pltick.o .libs/plvpor.o .libs/plwind.o .libs/plstripc.o .libs/hpgl.o .libs/impress.o .libs/ljiip.o .libs/ljii.o .libs/null.o .libs/data.o .libs/pbm.o .libs/plbuf.o .libs/plmeta.o .libs/ps.o .libs/tek.o .libs/xfig.o .libs/xwin.o .libs/gd.o .libs/pdf.o .libs/svg.o .libs/plimage.o .libs/plstdio.o .libs/plvect.o /usr/lib/x86_64-linux-gnu/libexpat.so -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -ldl -lpq -lhpdf -lgd -lpng -lz -lm -O2 -Wl,-z -Wl,relro -Wl,-soname -Wl,libeplplot.so.3 -o .libs/libeplplot.so.3.2.7
error: conflicting types for variable "hershey_to_unicode_lookup_table"
old definition in module plcore file plplotP.h line 385
struct Hershey_to_Unicode_table []
new definition in module plsym file plhershey-unicode.h line 50
const Hershey_to_Unicode_table [980l]
reason for conflict at padding in types listed below (array/array):
char [3l]
char [7l]
make[4]: *** [libeplplot.la] Error 64
make[4]: Leaving directory `/srv/jenkins-slave/workspace/sid-goto-cc-emboss/emboss-6.6.0/plplot'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/srv/jenkins-slave/workspace/sid-goto-cc-emboss/emboss-6.6.0/plplot'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/srv/jenkins-slave/workspace/sid-goto-cc-emboss/emboss-6.6.0'
dh_auto_build: make -j1 AJAX_FIXED_ROOT=\"/usr/share/EMBOSS\" CPPFLAGS=-D_FORTIFY_SOURCE=2 CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security LDFLAGS=-lexpat -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl -lpq -Wl,-z,relro returned exit code 2
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory `/srv/jenkins-slave/workspace/sid-goto-cc-emboss/emboss-6.6.0'
make: *** [build] Error 2
Review the full (conflicting) declarations here:
http://sources.debian.net/src/emboss/6.6.0-1/plplot/plplotP.h?hl=381#L377
http://sources.debian.net/src/emboss/6.6.0-1/plplot/plhershey-unicode.h?hl=46#L42
As plcore.c (via plcore.h) solely includes plplotP.h, all accesses in this code
will be misaligned with arbitrary consequences.
Best,
Michael
PS.: As this bug appears to be entirely within an embedded code copy of plplot,
maybe it's about time to get rid of that.
-------------- 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/debian-med-packaging/attachments/20140516/c5b3aaaf/attachment.sig>
More information about the Debian-med-packaging
mailing list