Merge "Fix pendingIntent in SettingsSliceProvider could be Hijacked" into rvc-dev am: e8f1c6c814

Change-Id: I975aec9390ad68c3b38a56f2c79d6c66030c9e95
This commit is contained in:
Automerger Merge Worker
2020-03-05 08:08:38 +00:00
2 changed files with 7 additions and 2 deletions

View File

@@ -44,6 +44,7 @@ import androidx.slice.Slice;
import androidx.slice.SliceProvider; import androidx.slice.SliceProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.bluetooth.BluetoothSliceBuilder; import com.android.settings.bluetooth.BluetoothSliceBuilder;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.notification.zen.ZenModeSliceBuilder; import com.android.settings.notification.zen.ZenModeSliceBuilder;
@@ -322,7 +323,8 @@ public class SettingsSliceProvider extends SliceProvider {
@Override @Override
public PendingIntent onCreatePermissionRequest(@NonNull Uri sliceUri, public PendingIntent onCreatePermissionRequest(@NonNull Uri sliceUri,
@NonNull String callingPackage) { @NonNull String callingPackage) {
final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS); final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS)
.setPackage(Utils.SETTINGS_PACKAGE_NAME);
final PendingIntent noOpIntent = PendingIntent.getActivity(getContext(), final PendingIntent noOpIntent = PendingIntent.getActivity(getContext(),
0 /* requestCode */, settingsIntent, 0 /* flags */); 0 /* requestCode */, settingsIntent, 0 /* flags */);
return noOpIntent; return noOpIntent;

View File

@@ -50,6 +50,7 @@ import androidx.slice.Slice;
import androidx.slice.SliceProvider; import androidx.slice.SliceProvider;
import androidx.slice.widget.SliceLiveData; import androidx.slice.widget.SliceLiveData;
import com.android.settings.Utils;
import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.DatabaseTestUtils;
import com.android.settings.testutils.FakeToggleController; import com.android.settings.testutils.FakeToggleController;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter; import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
@@ -530,8 +531,10 @@ public class SettingsSliceProviderTest {
public void onCreatePermissionRequest_returnsSettingIntent() { public void onCreatePermissionRequest_returnsSettingIntent() {
final PendingIntent pendingIntent = mProvider.onCreatePermissionRequest( final PendingIntent pendingIntent = mProvider.onCreatePermissionRequest(
CustomSliceRegistry.FLASHLIGHT_SLICE_URI, "com.android.whaaaat"); CustomSliceRegistry.FLASHLIGHT_SLICE_URI, "com.android.whaaaat");
final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS)
.setPackage(Utils.SETTINGS_PACKAGE_NAME);
PendingIntent settingsPendingIntent = PendingIntent settingsPendingIntent =
PendingIntent.getActivity(mContext, 0, new Intent(Settings.ACTION_SETTINGS), 0); PendingIntent.getActivity(mContext, 0, settingsIntent, 0);
assertThat(pendingIntent).isEqualTo(settingsPendingIntent); assertThat(pendingIntent).isEqualTo(settingsPendingIntent);
} }