aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-lapd.c
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2012-01-12 20:40:23 +0000
committerBill Meier <wmeier@newsguy.com>2012-01-12 20:40:23 +0000
commit34a0aba9d36b1bd1ce004321c8269dc9dd5a2721 (patch)
treee6dee0ed8a13d9b01357ae4b96fd5d4803cfe265 /epan/dissectors/packet-lapd.c
parentf6ffb03ccbb2202d4a789aef955d4401692e546d (diff)
Don't do fcn calls in arg of g_?to??(); Macro may very well eval args multiple times.
svn path=/trunk/; revision=40444
Diffstat (limited to 'epan/dissectors/packet-lapd.c')
-rw-r--r--epan/dissectors/packet-lapd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/epan/dissectors/packet-lapd.c b/epan/dissectors/packet-lapd.c
index 84efd9bd72..c6ea543a64 100644
--- a/epan/dissectors/packet-lapd.c
+++ b/epan/dissectors/packet-lapd.c
@@ -507,7 +507,8 @@ dissect_lapd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
checksum = tvb_get_guint8(tvb, checksum_offset); /* high byte */
checksum <<= 8;
checksum |= tvb_get_guint8(tvb, checksum_offset+1) & 0x00FF; /* low byte */
- checksum_calculated = g_htons(crc16_ccitt_tvb(tvb, tvb_length(tvb) - 2));
+ checksum_calculated = crc16_ccitt_tvb(tvb, tvb_length(tvb) - 2);
+ checksum_calculated = g_htons(checksum_calculated); /* Note: g_htons() macro may eval arg multiple times */
if (checksum == checksum_calculated) {
checksum_ti = proto_tree_add_uint_format(lapd_tree, hf_lapd_checksum, tvb, checksum_offset, 2, 0,"Checksum: 0x%04x [correct]", checksum);