summaryrefslogtreecommitdiff
path: root/wiretap/k12.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2015-04-30 15:21:00 -0700
committerGuy Harris <guy@alum.mit.edu>2015-04-30 22:22:59 +0000
commit9fba5f0764678cfed4b7ff2a41fdcb0babcdbf55 (patch)
tree0515e84e39049ba809ab2c1e8c1be4e6964a464a /wiretap/k12.c
parentd2b02eaf591145f40eaa65d6b50908e47d7c4484 (diff)
downloadwireshark-9fba5f0764678cfed4b7ff2a41fdcb0babcdbf55.tar.gz
Fix some cases where we're shifting a signed 1 left.
Shift 1U instead, to make sure it's unsigned; the result of, for example, the result of shifting a signed value left is undefined if the value times 2^{shift count} doesn't fit in the *signed* type of the shifted value. That means, in particular, that the result of shifting 1 left by {number of bits in an int - 1} is undefined. (In *practice*, it'll probably be -2^32, with the bit you want set, but that's not guaranteed, and GCC 5.1 seems not to like it.) Change-Id: I0d27565c382a04ceda9eec65f45a430ceb74cf53 Reviewed-on: https://code.wireshark.org/review/8255 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wiretap/k12.c')
-rw-r--r--wiretap/k12.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/wiretap/k12.c b/wiretap/k12.c
index a75dd0015e..58f0301030 100644
--- a/wiretap/k12.c
+++ b/wiretap/k12.c
@@ -1007,7 +1007,7 @@ wtap_open_return_val k12_open(wtap *wth, int *err, gchar **err_info) {
rec->input_info.ds0mask = 0x00000000;
if (hwpart_len > K12_SRCDESC_DS0_MASK) {
for (i = 0; i < hwpart_len - K12_SRCDESC_DS0_MASK; i++) {
- rec->input_info.ds0mask |= ( *(read_buffer + K12_SRCDESC_HWPART + K12_SRCDESC_DS0_MASK + i) == 0xff ) ? 0x1<<(31-i) : 0x0;
+ rec->input_info.ds0mask |= ( *(read_buffer + K12_SRCDESC_HWPART + K12_SRCDESC_DS0_MASK + i) == 0xff ) ? 1U<<(31-i) : 0x0;
}
}
break;