Ethereal-dev: Re: [ethereal-dev] Re: core dumps on bus error on Solaris 8

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

From: Gilbert Ramirez <gram@xxxxxxxxxx>
Date: Fri, 23 Jun 2000 11:44:32 -0500
On Fri, Jun 23, 2000 at 10:50:23AM -0500, Christine Tran wrote:
> 
> ># isalist -v
> >sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc
> >
> ># ethereal -v
> >ethereal 0.8.4, with GTK+ 1.2.6, with libpcap 0.4, with libz 1.1.3, 
> without SNM
> >(dbx) where
> >=>[1] _proto_tree_add_item_value(0x1ce500, 0xea, 0x2c, 0x2, 0x0, 0x0), at
> >0x96520
> >  [2] proto_tree_add_item(0x1ce500, 0xea, 0x2c, 0x2, 0x3ff00000, 0x0), at
> >0x962a0
> >  [3] dissect_bpdu(0x15, 0x11, 0x3ff00000, 0x0, 0x402e0000, 0x0), at 
> 0x32a94
> >  [4] dissect_llc(0x1f56c8, 0x11, 0x23a188, 0x1ce17c, 0x1ce528, 0xef000), 
> at
> >0x4b434
> >  [5] dissect_eth(0x1f56c8, 0xe, 0x23a188, 0x1ce17c, 0x34, 0x122d10), at
> >0x3778c
> >  [6] dissect_packet(0x1f56c8, 0x23a188, 0x1ce17c, 0x6, 0xfed36000, 0x1), 

I'm not familiar enough with the sparc architecture to know hy
the debugger lists 6 arguments to each dissect*() call instead of either
3 or 4. What's interesting is the first argument to each dissect*()
call. The pointer to the data buffer (const u_char *pd) is 0x1f56c8
in the first 3 dissections (_packet, _eth, and _llc). Well, that's if
I'm converting this 6-arg list to a 3 or 4 arg list correctly in my head.
But then it changes in the call to dissect_bpdu to 0x15.

I checked the source in dissect_llc() that gets a dissector function
pointer from a table and then calls it. It's not changing 'pd' (it's constant),
nor is it passing a new value as 'pd' to the next dissector, so
why it changes in your process, I don't know.

Did you build this executable or did you install a binary image?
If you installed an image, I'd recommend compiling Ethereal (maybe 0.8.4,
but preferrably 0.8.9, the latest version) and see what happens.

--gilbert