From 4e00558fcbdcfc9232f1007e718b9e2afae6520a Mon Sep 17 00:00:00 2001 From: Yunlian Jiang Date: Wed, 28 Oct 2015 14:16:24 -0700 Subject: 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 --- src/mm-broadband-modem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') 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) { -- cgit v1.2.3-70-g09d2