diff options
Diffstat (limited to 'src/com/android/phone/CdmaCallForwardOptions.java')
-rw-r--r-- | src/com/android/phone/CdmaCallForwardOptions.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/com/android/phone/CdmaCallForwardOptions.java b/src/com/android/phone/CdmaCallForwardOptions.java index 1769fb6e51..57635a856e 100644 --- a/src/com/android/phone/CdmaCallForwardOptions.java +++ b/src/com/android/phone/CdmaCallForwardOptions.java @@ -17,10 +17,13 @@ package com.android.phone; import android.app.ActionBar; +import android.content.ContentProvider; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.os.PersistableBundle; +import android.os.Process; +import android.os.UserHandle; import android.preference.Preference; import android.preference.PreferenceScreen; import android.telephony.CarrierConfigManager; @@ -218,6 +221,15 @@ public class CdmaCallForwardOptions extends TimeConsumingPreferenceActivity { } Cursor cursor = null; try { + // check if the URI returned by the user belongs to the user + final int currentUser = UserHandle.getUserId(Process.myUid()); + if (currentUser + != ContentProvider.getUserIdFromUri(data.getData(), currentUser)) { + + Log.w(LOG_TAG, "onActivityResult: Contact data of different user, " + + "cannot access"); + return; + } cursor = getContentResolver().query(data.getData(), NUM_PROJECTION, null, null, null); if ((cursor == null) || (!cursor.moveToFirst())) { |