[DRE-maint] Bug#751273: ruby-bluecloth: Conflicting declarations of mkd_compile, mkd_string to cause undefined behaviour

Michael Tautschnig mt at debian.org
Wed Jun 11 16:22:42 UTC 2014


Package: ruby-bluecloth
Version: 2.2.0-4
Usertags: goto-cc

During a rebuild of all Debian packages in a clean sid chroot (using cowbuilder
and 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.

[...]
gcc -shared -o bluecloth_ext.so bluecloth.o markdown.o html5.o mkdio.o version.o xml.o generate.o css.o setup.o xmlpage.o tags.o emmatch.o docheader.o resource.o Csio.o -L. -L/usr/lib/x86_64-linux-gnu -L. -Wl,-z,relro -L/build/ruby2.1-R1fHdQ/ruby2.1-2.1.2/debian/lib -fstack-protector -rdynamic -Wl,-export-dynamic    -lruby-2.1  -lpthread -lgmp -ldl -lcrypt -lm   -lc

error: conflicting function declarations "mkd_compile"
old definition in module bluecloth file mkdio.h line 23
signed int (void *, unsigned int)
new definition in module markdown file markdown.c line 1211
signed int (struct document *doc, unsigned long int flags)

error: conflicting function declarations "mkd_string"
old definition in module bluecloth file mkdio.h line 13
void * (const char *, signed int, unsigned int)
new definition in module mkdio file mkdio.c line 173
struct document * (const char *buf, signed int len, unsigned long int flags)
Makefile:232: recipe for target 'bluecloth_ext.so' failed
make[1]: *** [bluecloth_ext.so] Error 64
make[1]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-ruby-bluecloth/ruby-bluecloth-2.2.0/ext'

For any platform with sizeof(unsigned int)<sizeof(unsigned long int) the
behaviour will be undefined in at least one of two ways: several bytes will take
an undefined value; for big endian systems, the wrong set of bytes will be
extracted.

On review of the code, it seems some cleanup of typedefs is required: mkdio.h
uses mkd_flag_t while mkdio.c uses DWORD:

http://sources.debian.net/src/ruby-bluecloth/2.2.0-4/ext/mkdio.h?hl=13#L13
http://sources.debian.net/src/ruby-bluecloth/2.2.0-4/ext/mkdio.c?hl=173#L173

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-ruby-extras-maintainers/attachments/20140611/be4e0b95/attachment.sig>


More information about the Pkg-ruby-extras-maintainers mailing list