tags 748091 + pending
quit
On Wed, May 14, 2014 at 08:58:31AM +0100, Michael Tautschnig wrote:
> Package: gp2c
> Version: 0.0.9pl1-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.
> 
> [...]
> x86_64-linux-gnu-gcc -DFUNCDSC_PATH=\"/usr/share/gp2c/func.dsc\" -Wall -g -O2 
>  -Wl,-z,relro -o gp2c gp2c.o context.o funcdesc.o funcspec.o genblock.o 
> gencast.o gencode.o genfunc.o gentype.o gerepile.o lang.o moveblock.o node.o 
> parse.o printnode.o toplevel.o topfunc.o util.o varlist.o stack.o  
> 
> error: conflicting function declarations "cleancode"
> old definition in module gp2c file gp2c.c line 51
> void (signed int, signed int)
> new definition in module moveblock file moveblock.c line 301
> void (signed int n, signed int p, signed int d)
> Makefile:303: recipe for target 'gp2c' failed
> make[3]: *** [gp2c] Error 64
> make[3]: Leaving directory 
> '/srv/jenkins-slave/workspace/sid-goto-cc-gp2c/gp2c-0.0.9pl1/src'
> Makefile:210: recipe for target 'all' failed
> 
> Looking at the implementation of cleancode, the (single) call to cleancode 
> from
> gp2c does not seem to provide a guaranteed that one wouldn't enter the cases
> Fassign, Fblock or Fdeffunc, all of which read the value d irrespective of the
> value of p (the Fseq case does only read d if p>=0).
> 
> Such a stack underflow would cause arbitrary values to be used for "d," and
> undefined behaviour results from that.

Thanks for your report. Indeed the headers files were not used properly, hidding
this problem. I fixed it upstream.

Cheers,
-- 
Bill. <[email protected]>

Imagine a large red swirl here. 


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to