[xmlroff] core dump with r403

Jeroen Ruigrok van der Werven asmodai at in-nomine.org
Wed Mar 19 09:28:45 UTC 2008


Ok, so I updated to r403 and recompiled.

Weird thing is when passing --enable-static --disable-shared to autogen.sh
the resulting binary is still dynamically linked:

/home/ruigrok/xmlroff/bin/xmlroff: ELF 32-bit LSB executable, Intel 80386,
version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared
libs), not stripped

(Ubuntu 7 at work, just in case you wonder why not FreeBSD.)

The output I get now:

(xmlroff:15734): libfo-CRITICAL **: Expression evaluation error: Expression not completely evaluated: '/sfktekst/handtekening-tinke.gif'
Object path: /FoTree[1]/FoRoot[1]/FoPageSequence[1]/FoFlow[1]/FoBlockLayout[8]/FoExternalGraphic[1]
Object path: /FoTree[1]/FoRoot[1]/FoPageSequence[1]/FoFlow[1]/FoBlockLayout[8]/FoExternalGraphic[1]

(xmlroff:15734): libfo-CRITICAL **: fo_property_text_property_new_attr: assertion `property != NULL' failed

And then another coredump:

(gdb) bt
#0  0x08139926 in fo_external_graphic_get_text_attr_list (
    fo_inline_fo=0x8353038, fo_doc=0x823ec18, text=0x8c7f5a0, 
    attr_glist=0xbfc0049c, debug_level=0) at fo-external-graphic-area.c:130
#1  0x080a9771 in fo_block_area_new (block=0x834f4a8, fo_doc=0x823ec18, 
    parent_area=0x82ee010, new_area=0xbfc00544, debug_level=0)
    at fo-block-area.c:108
#2  0x080a9cab in fo_block_area_new2 (fo_node=0x834f4a8, context=0xbfc0052c, 
    error=0xbfc00548) at fo-block-area.c:439
#3  0x080919f0 in fo_block_layout_children_properties_resolve (
    this_fo=0x834f4a8, this_fo_parent_area=0x82ee010, new_area=0xbfc005c0, 
    prop_eval_hash=0x82397c0, fo_doc=0x823ec18, continue_after_error=0, 
    debug_level=0, warning_mode=3, error=0xbfc005c8) at fo-block-layout.c:156

#0  0x08139926 in fo_external_graphic_get_text_attr_list (
    fo_inline_fo=0x8353038, fo_doc=0x823ec18, text=0x8c7f5a0, 
    attr_glist=0xbfc0049c, debug_level=0) at fo-external-graphic-area.c:130
130       pango_attr->start_index = start_index;

(gdb) print pango_attr
$1 = (PangoAttribute *) 0x0

Looks like a null pointer.

Digging deeper:

(gdb) print fo_external_graphic
$5 = (FoExternalGraphic *) 0x8353038
(gdb) print *fo_external_graphic
$9 = {parent_instance = {parent_instance = {parent_instance = {
        parent_instance = {g_type_instance = {g_class = 0x834ea18}, 
          ref_count = 1, qdata = 0x0}}, node = 0x8269938}, 
    element = 0x83521b0, tree = 0x823d670, flow = 0x823cac0, areas = 0x0, 
    context = 0x8358128}, base_uri = 0x83521c0 "result.pdf.fo", 
  fo_doc = 0x823ec18, fo_image = 0x0, area_width = 0, area_height = 0, 

And the rest is all 0x0. Is this a result of the previous 'Expression
evaluation error' for the .gif image? If so, should a failing image
(FoImage) not be guarded against to recover more gracefully?

-- 
Jeroen Ruigrok van der Werven <asmodai(-at-)in-nomine.org> / asmodai
イェルーン ラウフロック ヴァン デル ウェルヴェン
http://www.in-nomine.org/ | http://www.rangaku.org/
Silence must be heard, noise must be observed...


More information about the xmlroff-list mailing list