I have also gotten a memory corruption with the given input file, and with
'digraph g {v [label="fmnosyy cemnnoopt definr\Einoprx\Eeionprssx  aceert"]}'
as input.  The directory names are sorted versions of those in N44 of the
original input, and the backslashes and newlines have been space-ified.

If I shorten this by one character I get an assertion error in malloc.c:3096.
If I remove one of the '\E's or replace it by anything else I've come up with
(trying '\e', 'ee', 'E' and 'EE' for a start), I get normal output.

If I run dot with -v, the crash happens right after

'loadimage      :  (lib) eps gd gd2 gif jpe jpeg jpg png ps svg'

though it is now a segfault rather than a memory corruption.

The same thing happens with neato, fdp, circo and twopi, also if I tweak the
output format parameter (tested: -Tpng, -Tsvg, -Tpdf).  Perhaps that not
surprising, since that 'loadimage' comes before the layout algorithm begins in
the -v logorrhea ;-)

Looking at upstream (hg clone http://hg.research.att.com/graphviz), revision
9118 (most recent at the time of writing) didn't crash on the shrunk input,
nor the original.

8833 claims to have fixed a memory/free issue, but it didn't build for me.  I
did a hg bisect -c 'make -j' which spat out rev 9084, "start 2.31 development
series".  It compiled, and ran on the two input files without a hiccup.

I hope this helps figure out what's going on :-)

Cheerio,

JK

Attachment: signature.asc
Description: Digital signature

Reply via email to