Ethereal-dev: Re: [Ethereal-dev] SVN 16115 (was 16110) segfault

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Andrew Hood <ajhood@xxxxxxxxx>
Date: Wed, 05 Oct 2005 14:00:34 +1000
LEGO wrote:
> As a workarround I'll take the dtds directory out from the install so
> that xml namespaces are just ignored and don't get in the way.

Upgraded to 16115 and still does it. dtds/itunes.dtd is the only one I
have to delete.

I noticed that if you have a ~/.ethereal/dtds it does not read
${prefix}/share/ethereal/dtds

Have the prereqs changed? Ethereal has recently built with:

Linux 2.4.21
gcc 2.95.3
bison (GNU Bison) 2.0
flex 2.5.4a
perl 5.6.1
python 2.2.1
doxygen 1.3_rc2
libxslt 1.1.2
pkg-config 0.15.0
GTK+ 2.4.10
GLIB 2.4.6
pcap 0.8.3
zlib 1.2.3
pcre 4.4
no kerberos

> For the segfaults while preparsing itunes.dtd a "bt full" might help
> (I do not get them).

bt full attached. If I run ethereal under valgrind it doesn't crash.
Runs like an absolute dog, but doesn't crash.

> As for the "Duplicate protocol name" it is probably the xml plugin
> from the older version that collides with the new xml dissector (in
> epan).

I guessed that, which was one of the reasons I moved the old version
before running make.

> Luis
> 
>  10/4/05, Andrew Hood <ajhood@xxxxxxxxx> wrote:
> 
>>Clean checkout of 16110, but has been happening all day. I'm rebuilding
>>16115.
>>
>>I keep getting segfaults in various places under init_xml_names. The
>>latest ones are "in location () at dtd_preparse.l:164"
>>
>>If I remove dtds/itunes.dtd it stops segfaulting.
>>
>>To even get this far I had to rename the installed ethereal tree (SVN
>>20050820100307) because it kept getting "Duplicate protocol name" errors
>>in epan/proto.c from the installed versions. I can't remember having to
>>do this before.
>>
>>Clues?


-- 
There's no point in being grown up if you can't be childish sometimes.
                -- Dr. Who
#0  0x415dcb4c in malloc () from /lib/libc.so.6
No symbol table info available.
#1  0x415dc9a4 in malloc () from /lib/libc.so.6
No symbol table info available.
#2  0x415d5bb4 in vasprintf () from /lib/libc.so.6
No symbol table info available.
#3  0x415243b4 in g_vasprintf (string=0xbfffec8c, format=0x407374ee "%s:%u from", args=0xbfffecd0) at gprintf.c:311
        format = (gchar *) 0x416886a0 "¸\037@\b¸\037@\bø\037@\bÀÊ?\b¨\037@\b°@B\bè\035@\b"
        args = 0x416886a0
        len = 136023440
#4  0x4151962e in g_string_append_printf_internal (string=0x81b8d90, fmt=0x407374ee "%s:%u from", args=0xbfffecd0) at gstring.c:830
        string = (GString *) 0x81b8d90
        fmt = (gchar *) 0x65726568 <Address 0x65726568 out of bounds>
        args = 0x416886a0
        buffer = (gchar *) 0x8402000 "8\036@\b \206hAeal:location "
        length = 1097369248
#5  0x415196c2 in g_string_append_printf (string=0x81b8d90, fmt=0x407374ee "%s:%u from") at gstring.c:857
        string = (GString *) 0x74652e2c
        fmt = (gchar *) 0x65726568 <Address 0x65726568 out of bounds>
#6  0x402728f8 in location () at ./dtd_preparse.l:164
        loc = (struct _GString *) 0x81b8d90
        i = 0
#7  0x40272a70 in dtd_preparse (dname=0x83fcb10 "/home/ajhood/.ethereal/dtds", fname=0x83fcbf3 "rss.dtd", err=0x81b8da8) at ./dtd_preparse.l:205
        fullname = (gchar *) 0x8401fb0 "\200Û?\b¨\206hAhood/.ethereal/dtds/rss.("
#8  0x4072c468 in init_xml_names () at packet-xml.c:1104
        errors = (struct _GString *) 0x81b8da8
        preparsed = (struct _GString *) 0x81b8d78
        dtd_data = (struct _dtd_build_data_t *) 0x83fdb88
        namelen = 1701995880
        xmlpi_xml_ns = (struct _xml_ns_t *) 0x81b8da8
        i = 138398707
        dir = (struct _GDir *) 0x83fcb30
        file = (const gchar *) 0x83fcbf3 "rss.dtd"
        dirname = (gchar *) 0x83fcb10 "/home/ajhood/.ethereal/dtds"
        dummy = (struct _GError **) 0x83fc820
#9  0x4072c64f in proto_register_xml () at packet-xml.c:1176
        ett_base = {0x40dad7b0, 0x40dad790, 0x40dad760, 0x40dad764}
        hf_base = {{p_id = 0x40dad770, hfinfo = {name = 0x40b0e7b2 "XMLPI", abbrev = 0x40b0e725 "xml.xmlpi", type = FT_STRING, display = 0, strings = 0x0, 
      bitmask = 0, blurb = 0x40b0e5f9 "", id = 0, parent = 0, ref_count = 0, bitshift = 0, same_name_next = 0x0, same_name_prev = 0x0}}, {p_id = 0x40dad76c, 
    hfinfo = {name = 0x40b0e7aa "Comment", abbrev = 0x40b0e79e "xml.comment", type = FT_STRING, display = 0, strings = 0x0, bitmask = 0, 
      blurb = 0x40b0e5f9 "", id = 0, parent = 0, ref_count = 0, bitshift = 0, same_name_next = 0x0, same_name_prev = 0x0}}, {p_id = 0x40dad768, hfinfo = {
      name = 0x40b0e794 "Attribute", abbrev = 0x40b0e786 "xml.attribute", type = FT_STRING, display = 0, strings = 0x0, bitmask = 0, blurb = 0x40b0e5f9 "", 
      id = 0, parent = 0, ref_count = 0, bitshift = 0, same_name_next = 0x0, same_name_prev = 0x0}}, {p_id = 0x40dad778, hfinfo = {
      name = 0x40b0e77e "Doctype", abbrev = 0x40b0e772 "xml.doctype", type = FT_STRING, display = 0, strings = 0x0, bitmask = 0, blurb = 0x40b0e5f9 "", 
      id = 0, parent = 0, ref_count = 0, bitshift = 0, same_name_next = 0x0, same_name_prev = 0x0}}, {p_id = 0x40dad774, hfinfo = {
      name = 0x40b0e76a "DTD Tag", abbrev = 0x40b0e75f "xml.dtdtag", type = FT_STRING, display = 0, strings = 0x0, bitmask = 0, blurb = 0x40b0e5f9 "", 
      id = 0, parent = 0, ref_count = 0, bitshift = 0, same_name_next = 0x0, same_name_prev = 0x0}}, {p_id = 0x40dad7ac, hfinfo = {name = 0x40b0e759 "CDATA", 
      abbrev = 0x40b0e74f "xml.cdata", type = FT_STRING, display = 0, strings = 0x0, bitmask = 0, blurb = 0x40b0e5f9 "", id = 0, parent = 0, ref_count = 0, 
      bitshift = 0, same_name_next = 0x0, same_name_prev = 0x0}}, {p_id = 0x40dad7a8, hfinfo = {name = 0x40b0e74b "Tag", abbrev = 0x40b0e743 "xml.tag", 
      type = FT_STRING, display = 0, strings = 0x0, bitmask = 0, blurb = 0x40b0e5f9 "", id = 0, parent = 0, ref_count = 0, bitshift = 0, 
      same_name_next = 0x0, same_name_prev = 0x0}}, {p_id = 0x40dad78c, hfinfo = {name = 0x40b0e73b "Unknown", abbrev = 0x40b0e72f "xml.unknown", 
      type = FT_STRING, display = 0, strings = 0x0, bitmask = 0, blurb = 0x40b0e5f9 "", id = 0, parent = 0, ref_count = 0, bitshift = 0, 
      same_name_next = 0x0, same_name_prev = 0x0}}}
#10 0x40731f4c in register_all_protocols () at register.c:598
No locals.
#11 0x4027dc9d in proto_init (plugin_dir=0x81174e0 "/opt/ethereal/lib/ethereal/plugins/0.10.12", register_all_protocols=0x8060ab0 <register_all_protocols>, 
    register_all_protocol_handoffs=0x8061a40 <register_all_protocol_handoffs>) at proto.c:303
        hf = {{p_id = 0x819dff4, hfinfo = {name = 0x4073b0a0 "", abbrev = 0x4073b0a0 "", type = FT_NONE, display = 0, strings = 0x0, bitmask = 0, 
      blurb = 0x0, id = 0, parent = -1, ref_count = 0, bitshift = 0, same_name_next = 0x0, same_name_prev = 0x0}}}
#12 0x40273516 in epan_init (plugin_dir=0x81174e0 "/opt/ethereal/lib/ethereal/plugins/0.10.12", register_all_protocols=0x8060ab0 <register_all_protocols>, 
    register_all_handoffs=0x8061a40 <register_all_protocol_handoffs>, report_failure=0x416886a0 <__morecore+64>, report_open_failure=0x65726568, 
    report_read_failure=0x74652e2c) at epan.c:65
No locals.
#13 0x08081ee0 in main (argc=1, argv=0xbffff0e4) at main.c:1857
        command_name = 0xbffff262 "PWD=/usr/src/misc/ethereal"
        s = 0xbffff088 "äðÿ¿ìðÿ¿DÖ\020\b"
        i = -1073745784
        opt = 1701995880
        arg_error = 0
        rf_path = 0x415751e8 "Ò1"
        rf_open_errno = 1095518184
        gpf_path = 0x4cbd <Address 0x4cbd out of bounds>
        pf_path = 0x15 <Address 0x15 out of bounds>
        cf_path = 0x805be69 "GLIBC_2.0"
        df_path = 0x4000736f "\203Ä\020\205ÀtJ\213E\f\203x\b"
        gdp_path = 0x4175fc70 ""
        dp_path = 0x1f <Address 0x1f out of bounds>
        gpf_open_errno = 1073770649
        gpf_read_errno = 1073824612
        pf_open_errno = 1073826008
        pf_read_errno = 1098252080
        cf_open_errno = 2013
        df_open_errno = 1096274581
        gdp_open_errno = 31
        gdp_read_errno = 0
        dp_open_errno = 32
        dp_read_errno = -1073745936
        err = 1073827360
        start_capture = 0
        if_list = (struct _GList *) 0xbffff088
        if_info = (struct {...} *) 0x416886a0
        lt_list = (struct _GList *) 0x8117493
        lt_entry = (struct _GList *) 0xbffff262
        data_link_info = (struct {...} *) 0xbffff088
        err_str = "0ÿuA\025\0\0\0¨ïÿ¿0Á\004\b\034J\001@\017S\216\a\017S\216\a<ðÿ¿ØH\001@\036OMA¼êMA\224íhAäðÿ¿èGLAØïÿ¿\230KWA,ILA\0\0\0\0taß\003\0\0\0\0øïÿ¿£\023MA¤íhA\0\0\0\0\230KWAi\022MAà­hAø\t\032\bäðÿ¿\216ÿw\001@ðÿ¿z\234\0@(ðÿ¿:«fA\224íhA\0\0\0\08ðÿ¿ÅªfAà­hA,H\001@\214Ê\031\b,H\001@äðÿ¿à½hAXðÿ¿k«fAàn\027\bø\t\032\b\0\0\0\0\0\0\0\0"...
        cant_get_if_list_errstr = (gchar *) 0xbffff088 "äðÿ¿ìðÿ¿DÖ\020\b"
        stats_known = 77
        stats = {ps_recv = 96, ps_drop = 3221221408, ps_ifdrop = 1073771375}
        rc_file = (gchar *) 0xbffff262 "PWD=/usr/src/misc/ethereal"
        cf_name = (gchar *) 0x0
        rfilter = (gchar *) 0x0
        rfcode = (struct _dfilter_t *) 0x0
        rfilter_parse_failed = 0
        prefs = (struct _e_prefs *) 0x8117493
        badopt = -96 ' '
        splash_win = (struct _GtkWidget *) 0x81f1170
        go_to_packet = 0
        optind_initial = -1073745310
        optstring = "a:b:c:f:g:Hhi:klLm:nN:o:pQr:R:Ss:t:w:vy:z:\0\0"
#14 0x4158617d in __libc_start_main () from /lib/libc.so.6