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
This commit is contained in:
Yunlian Jiang
2015-10-28 14:16:24 -07:00
committed by Aleksander Morgado
parent 30cbf7202c
commit 4e00558fcb

View File

@@ -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) {