Ethereal-dev: [ethereal-dev] Core while printing in 0.8.0

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

From: Santeri Paavolainen <santtu@xxxxxx>
Date: Fri, 7 Jan 2000 13:24:02 +0200 (EET)
System: Linux kellari.ssh.fi 2.2.10 #14 Wed Jul 28 10:30:35 EEST 1999 i686 unknown

This is reproducible:

1. Start a fresh ethereal
2. Capture some packets with the "Update in real time" selected
3. Select some of those (I selected 4-8 sequential packets)
4. Choose "Print" from the "File" menu
5. Select "Ok"

and lo!

(gdb) bt
#0  0x4028f111 in __kill ()
#1  0x4028ed66 in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2  0x40290447 in abort () at ../sysdeps/generic/abort.c:88
#3  0x401952d3 in g_logv ()
#4  0x40195396 in g_log ()
#5  0x8067364 in print_packets (cf=0x8153fc0, print_args=0xbfffeae4)
    at file.c:934
#6  0x80dace2 in print_ok_cb (ok_bt=0x819cc20, parent_w=0x81e1d40)
    at print_dlg.c:415
#7  0x400b919d in gtk_marshal_NONE__NONE ()
#8  0x400e6bed in gtk_handlers_run ()
#9  0x400e6032 in gtk_signal_real_emit ()
#10 0x400e4185 in gtk_signal_emit ()
#11 0x40058768 in gtk_button_clicked ()
#12 0x40059d58 in gtk_real_button_released ()
#13 0x400b919d in gtk_marshal_NONE__NONE ()
#14 0x400e5eeb in gtk_signal_real_emit ()
#15 0x400e4185 in gtk_signal_emit ()
#16 0x400586a8 in gtk_button_released ()
#17 0x40059712 in gtk_button_button_release ()
#18 0x400b8d69 in gtk_marshal_BOOL__POINTER ()
#19 0x400e606b in gtk_signal_real_emit ()
#20 0x400e4185 in gtk_signal_emit ()
#21 0x4011975c in gtk_widget_event ()
#22 0x400b8cc2 in gtk_propagate_event ()
#23 0x400b7f1a in gtk_main_do_event ()
#24 0x401635cb in gdk_event_dispatch ()
#25 0x40192be6 in g_main_dispatch ()
#26 0x401931a1 in g_main_iterate ()
#27 0x40193341 in g_main_run ()
#28 0x400b7859 in gtk_main ()
#29 0x80d8139 in main (argc=1, argv=0xbffff6c4) at main.c:1469
#30 0x40288cb3 in __libc_start_main (main=0x80d6da0 <main>, argc=1, 
    argv=0xbffff6c4, init=0x805a854 <_init>, fini=0x80eaf4c <_fini>, 
    rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffff6bc)
    at ../sysdeps/generic/libc-start.c:78
(gdb) print *cf
$3 = {fh = 0x81d3c38, filed = 14, filename = 0x81d6600 "/tmp/etherXXXXoXZIQi", 
  is_tempfile = 1, user_saved = 0, f_len = 24, cd_t = 2, lnk_t = 1, vers = 0, 
  count = 32, unfiltered_count = 0, drops = 0, esec = 14, eusec = 994479, 
  snap = 65535, update_progbar = 0, progbar_quantum = 0, progbar_nextstep = 0, 
  iface = 0x81e4098 "eth0", save_file = 0x0, save_file_fd = 12, wth = 0x0, 
  rfcode = 0x0, dfilter = 0x0, colors = 0x81c3ec0, dfcode = 0x0, 
  cfilter = 0x81d5538 "host koppa and host kiulu", fcode = {bf_len = 0, 
    bf_insns = 0x0}, sfilter = 0x0, sbackward = 0, 
  pd = "\b\000 ÀÈû\b\000 ÀÈû\b\000E\000\000P]\013\000¹ÿ2×\217À¨\002²À¨\002%\023\027äÅ,\2160×ý·Rlß\\±\232LéH|$\215\030\230\231D¨îh,\016\211p\204Bf«Í\216æßÐG_2\e\211½¦\tÇdî\"[1\020\226ÀÐuV\027\230S\by\235§\236{²\221Ä^µ\200N²ñhR¡EÌÒÍñg¶\210-Û \002,¦¦ä¥2<ÜÎ\206\204k\226-\023jÏ\225Ü\232=é½ð»?/¬p³\026\027KèG\230ànÐÊ}ë¯T\037\204Óx\214ÿâ¿O¶\215¯?\006Ô\e\017\226¡æÕÒkº\232\207\204"..., plist = 0x81d4978, 
  plist_end = 0x8202748, first_displayed = 0x81d6088, 
  last_displayed = 0x8202748, cinfo = {num_cols = 6, col_fmt = 0x8183008, 
    fmt_matx = 0x8183028, col_width = 0x8183048, col_title = 0x8183068, 
    col_data = 0x8183088}, current_frame = 0x81d5cf0, current_row = 0, 
  current_frame_is_selected = 1, protocol_tree = 0x81c5400, 
  print_fh = 0x81e4e88}

This seems to be rather dependent on the exact starting conditions: if
the "update" is NOT selected, no crash will occur. Also, if there has
been some previous "successfull" operations I can't get it to dump
core.

file.c:934 is

      g_assert(cf->unfiltered_count > 0);

-- 
santtu@xxxxxx                    I have become death, destroyer of the worlds.