diff options
author | Yunlian Jiang <yunlian@google.com> | 2015-10-28 14:16:24 -0700 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2015-10-28 22:31:59 +0100 |
commit | 4e00558fcbdcfc9232f1007e718b9e2afae6520a (patch) | |
tree | f12bbedbe2b6f80ab62f323a2fb0cf4cafe6d6f2 | |
parent | 30cbf7202c6b5c721ac59ac93052d678428d99d6 (diff) |
broadband-modem: fix a undifined behavior
. A shift has undefined behaviour if the mathematical result
(lhs * 2^{rhs}) doesn't fit in the range of the resulting type.
In other words, you can't left shift into the sign bit of a
signed integer type.
The error message is:
mm-broadband-modem.c:3308:15: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
SUMMARY: AddressSanitizer: undefined-behavior mm-broadband-modem.c:3308:15 in
-rw-r--r-- | src/mm-broadband-modem.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index d2bfd913..85266462 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -3315,7 +3315,7 @@ get_next_facility_lock_status (LoadEnabledFacilityLocksContext *ctx) guint i; for (i = ctx->current; i < sizeof (MMModem3gppFacility) * 8; i++) { - guint32 facility = 1 << i; + guint32 facility = 1u << i; /* Found the next one to query! */ if (ctx->facilities & facility) { |