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(-) diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index d2bfd91..8526646 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) { -- 2.6.0.rc2.230.g3dd15c0
From 76dcddf65c768f1aefc28dd3d6e3843e5c2124c1 Mon Sep 17 00:00:00 2001 From: Yunlian Jiang <yunl...@google.com> Date: Wed, 28 Oct 2015 14:16:24 -0700 Subject: [PATCH] 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(-) diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index d2bfd91..8526646 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) { -- 2.6.0.rc2.230.g3dd15c0
_______________________________________________ ModemManager-devel mailing list ModemManager-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/modemmanager-devel