diff options
author | Jens Kilian <jens.kilian@advantest.com> | 2016-06-06 15:38:22 +0200 |
---|---|---|
committer | Jaap Keuter <jaap.keuter@xs4all.nl> | 2016-06-07 09:56:06 +0000 |
commit | 767a59e54e6df17f7d8e2c6806ce16062d17e6d7 (patch) | |
tree | 5d22dead466aa8e935035a791c039badb3dfd182 /epan/proto.c | |
parent | f7cd537e1ad2ab347d36c5b40796aef22629a00c (diff) |
Don't sign extend unsigned integer fields larger than 32 bits.
Fix a bug in proto_tree_set_uint64() which caused fields to be sign extended.
(This only showed up when a non-zero bitmask was present.)
Change-Id: Ibcc986e3d42f97348966ea66c2ae9fca73b09992
Reviewed-on: https://code.wireshark.org/review/15764
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Diffstat (limited to 'epan/proto.c')
-rw-r--r-- | epan/proto.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/epan/proto.c b/epan/proto.c index 127bb75c84..1b8cae449b 100644 --- a/epan/proto.c +++ b/epan/proto.c @@ -4060,7 +4060,6 @@ proto_tree_set_uint64(field_info *fi, guint64 value) { header_field_info *hfinfo; guint64 integer; - gint no_of_bits; hfinfo = fi->hfinfo; integer = value; @@ -4071,9 +4070,6 @@ proto_tree_set_uint64(field_info *fi, guint64 value) /* Shift bits */ integer >>= hfinfo_bitshift(hfinfo); - - no_of_bits = ws_count_ones(hfinfo->bitmask); - integer = ws_sign_ext64(integer, no_of_bits); } fvalue_set_uinteger64(&fi->value, integer); |