Package: dwb
Version: 20140415hg-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.

[...]
cc scripts.c

file scripts.c line 3464 function sutil_checksum: in expression 
`JSValueToNumber(ctx, argv[(signed long int)1], exc)':
conversion from `double' to `int': implicit conversion not permitted
CONVERSION ERROR
make[2]: *** [scripts.o] Error 64
make[2]: Leaving directory 
`/srv/jenkins-slave/workspace/sid-goto-cc-dwb/dwb-20140415hg/src'
make[1]: *** [src.subdir-make] Error 2

Indeed reviewing the code here

http://sources.debian.net/src/dwb/20140415hg-1/src/scripts.c?hl=3461,3464,3465#L3461

confirms that an enum-typed variable (which is represented by an int) is to be
assigned a double typed value. Furthermore the int is then passed to isnan,
which will always return false.

This bit of code should be fixed by introducing an additional double typed
variable to replace several uses of "type" here until it would be finally, in a
safe way, be converted to an enum value via

type = MIN(MAX(type, G_CHECKSUM_MD5), G_CHECKSUM_SHA256);
               ^^^^  to be replaced

Best,
Michael

Attachment: pgpYJpruY40hp.pgp
Description: PGP signature

Reply via email to