aboutsummaryrefslogtreecommitdiffstats
path: root/epan/proto.c
diff options
context:
space:
mode:
authorJens Kilian <jens.kilian@advantest.com>2016-06-06 15:38:22 +0200
committerJaap Keuter <jaap.keuter@xs4all.nl>2016-06-07 09:56:06 +0000
commit767a59e54e6df17f7d8e2c6806ce16062d17e6d7 (patch)
tree5d22dead466aa8e935035a791c039badb3dfd182 /epan/proto.c
parentf7cd537e1ad2ab347d36c5b40796aef22629a00c (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.c4
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);