Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8122e369 authored by twyen's avatar twyen Committed by android-build-merger
Browse files

Merge "Sanitize inputs for PreferredSimFallbackProvider.query()"

am: e96458ef

Change-Id: I33a3ea3faa0f39a1f7eda00ba4f5a4b9c1aa0a8b
parents bdb4f254 e96458ef
Loading
Loading
Loading
Loading
+23 −10
Original line number Diff line number Diff line
@@ -21,12 +21,14 @@ import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import com.android.dialer.preferredsim.PreferredSimFallbackContract;
import com.android.dialer.preferredsim.PreferredSimFallbackContract.PreferredSim;
import com.google.common.collect.ImmutableMap;

/**
 * Content provider for preferred SIM columns that is only available in ContactsProvider after P.
@@ -39,6 +41,15 @@ public class PreferredSimFallbackProvider extends ContentProvider {

  private static final String UPDATE_ID_SELECTION = PreferredSim.DATA_ID + " = ?";

  private static final ImmutableMap<String, String> PROJECTION_MAP =
      ImmutableMap.of(
          PreferredSim.DATA_ID,
          PreferredSim.DATA_ID,
          PreferredSim.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME,
          PreferredSim.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME,
          PreferredSim.PREFERRED_PHONE_ACCOUNT_ID,
          PreferredSim.PREFERRED_PHONE_ACCOUNT_ID);

  private PreferredSimDatabaseHelper databaseHelper;

  @Override
@@ -56,10 +67,12 @@ public class PreferredSimFallbackProvider extends ContentProvider {
      @Nullable String[] selectionArgs,
      @Nullable String sortOrder) {
    checkReadContactsPermission();
    return databaseHelper
        .getReadableDatabase()
        .query(
            PreferredSimDatabaseHelper.TABLE,
    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    queryBuilder.setStrict(true);
    queryBuilder.setProjectionMap(PROJECTION_MAP);
    queryBuilder.setTables(PreferredSimDatabaseHelper.TABLE);
    return queryBuilder.query(
        databaseHelper.getReadableDatabase(),
        projection,
        selection,
        selectionArgs,