From 6e1dc4f73597467f0895b9abe186dafd7ea23f2e Mon Sep 17 00:00:00 2001 From: Hall Liu Date: Mon, 27 Jan 2020 15:23:25 -0800 Subject: [PATCH 1/2] Allow empty tokens in strict grammar Allow empty tokens in SQLiteQueryBuilder's strict grammar enforcement Bug: 143230980 Test: atest SQLiteQueryBuilderTest, manual Change-Id: Ie82dded77a3eaa75095333b0e77f10e21c9f7caf (cherry picked from commit ea5b2c08df2e01139b8607f6bc0085bc70a17f1d) Merged-In: Ie82dded77a3eaa75095333b0e77f10e21c9f7caf --- core/java/android/provider/CallLog.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/java/android/provider/CallLog.java b/core/java/android/provider/CallLog.java index a0e92b398c4e9..276f16216b4de 100644 --- a/core/java/android/provider/CallLog.java +++ b/core/java/android/provider/CallLog.java @@ -98,6 +98,13 @@ public class CallLog { */ public static final String LIMIT_PARAM_KEY = "limit"; + /** + * Form of {@link #CONTENT_URI} which limits the query results to a single result. + */ + private static final Uri CONTENT_URI_LIMIT_1 = CONTENT_URI.buildUpon() + .appendQueryParameter(LIMIT_PARAM_KEY, "1") + .build(); + /** * Query parameter used to specify the starting record to return. *

@@ -932,11 +939,11 @@ public class CallLog { Cursor c = null; try { c = resolver.query( - CONTENT_URI, + CONTENT_URI_LIMIT_1, new String[] {NUMBER}, TYPE + " = " + OUTGOING_TYPE, null, - DEFAULT_SORT_ORDER + " LIMIT 1"); + DEFAULT_SORT_ORDER); if (c == null || !c.moveToFirst()) { return ""; } From 02b4a387aa85f3a084b22716c1221bc2b2ad9133 Mon Sep 17 00:00:00 2001 From: Hall Liu Date: Wed, 11 Mar 2020 15:15:42 -0700 Subject: [PATCH 2/2] Allow empty tokens in strict grammar In SQLiteQueryBuilder, allow empty tokens when checking for invalid tokens during the strict grammar check. Fixes: 151151800 Test: atest SQLiteQueryBuilderTest#testStrictQueryEmptyToken Change-Id: Iac1cdd643253fd186a164b863d65d6e92698fd38 (cherry picked from commit e409ec2492f47be9a0f3917bbbb324624eec7b5e) Merged-In: Iac1cdd643253fd186a164b863d65d6e92698fd38 --- core/java/android/database/sqlite/SQLiteQueryBuilder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/java/android/database/sqlite/SQLiteQueryBuilder.java b/core/java/android/database/sqlite/SQLiteQueryBuilder.java index 669d0466fdf2a..e9c59f55a418d 100644 --- a/core/java/android/database/sqlite/SQLiteQueryBuilder.java +++ b/core/java/android/database/sqlite/SQLiteQueryBuilder.java @@ -798,6 +798,7 @@ public class SQLiteQueryBuilder { } private void enforceStrictToken(@NonNull String token) { + if (TextUtils.isEmpty(token)) return; if (isTableOrColumn(token)) return; if (SQLiteTokenizer.isFunction(token)) return; if (SQLiteTokenizer.isType(token)) return;