From a409128a7238b7b7a2b38f8b3732ca8905b89c71 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Wed, 17 Feb 2010 10:21:11 -0800 Subject: [PATCH] Prevent sign extension in UsimPhoneBookManager When performing a logical OR on a byte value, make sure to truncate its value to prevent possible sign extension when it is converted to 32-bit. Change-Id: I7bdfded32cec3e8a5f6b5c45316b2af5ab9471d1 --- .../android/internal/telephony/gsm/UsimPhoneBookManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telephony/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java b/telephony/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java index 9caae3d6cbc43..41e527cec05a2 100644 --- a/telephony/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java +++ b/telephony/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java @@ -409,7 +409,7 @@ public class UsimPhoneBookManager extends Handler implements IccConstants { case USIM_EFIAP_TAG: case USIM_EFSNE_TAG: data = tlv.getData(); - int efid = data[0] << 8 | data[1]; + int efid = ((data[0] & 0xFF) << 8) | (data[1] & 0xFF); val.put(tag, efid); break; }