Jeff Morriss
changed
bug 7960
Comment # 3
on bug 7960
from Jeff Morriss
This reminds me that, a long while ago (back when I was on a mission to
eliminate as many tvb_get_ptr() calls--at least in the dissectors--as I could),
I wanted to create TVB_SET_ADDRESS().
I finally did that in r46324.
I changed packet-fc.c to use TVB_SET_ADDRESS() and I also intentionally called
tvb_get_ptr() first so that if an exception is thrown, we won't modify any of
the rest of the address. That should help this problem, but I can't reproduce
the problem and I'm a bit confused as to why the data pointer would have been
NULL in the first place: in my case (pre-r46324) the data pointer wasn't NULL
it just pointed to the upper layer's address data instead of FC's (at least in
the case of packet 99).
Martin, if you can still reproduce it, maybe TVB_SET_ADDRESS() should call
tvb_get_ptr() and set the data field in 2 steps. (I would think that an
exception being thrown in a function whose return value is being stored in a
variable would mean that the variable is not modified, but what do I know?)
Anyway, with my changes, packet 99's address fields remain unmolested by FC and
show the Ethernet addresses--which seems proper to me.
You are receiving this mail because:
- You are watching all bug changes.