On Aug 4, 2008, at 6:03 AM, Martin Mathieson wrote:
Unfortunately not. I can't see what is different between this case
and the one in the built-in packet-ethertype.c which may have been
used as a template in part for the plugin packet-infiniband.c.
packet-ethertype.c has
tvbuff_t *volatile next_tvb;
in ethertype(), while packet-infiniband.c has
tvbuff_t *next_tvb;
in parse_PAYLOAD(). What happens if you change it to
tvbuff_t *volatile next_tvb;
in parse_PAYLOAD()?
(No, I don't know why it's not failing on the Ubuntu buildbot, unless
either
1) you're building for some RISC architecture with more than 16
registers, and next_tvb doesn't end up in a register on x86-64 but
does end up in a register on the architecture for which you're building
or
2) GCC 3.4.6 isn't clever enough to figure out that next_tvb won't
change between the setjmp and longjmp but the version of GCC on the
Ubuntu 7.10 buildbot (my Ubuntu 7.10 virtual machine has a
"prerelease" of GCC 4.1.3) is.)