[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