From 7ef452c6dc3942ba42c5075963d9d35c4454a246 Mon Sep 17 00:00:00 2001 From: Winson Date: Mon, 6 Jan 2020 14:12:36 -0800 Subject: [PATCH] Parse empty component permissions as null An empty string is a valid value, and must be converted to null so that the permission check is skipped. Bug: 146596667 Test: manual verify failure using APK from bug, success after fix Change-Id: Ia5cc915124a6ecb7ec6a9c907b5f2afed98cd44e --- .../content/pm/parsing/ComponentParseUtils.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core/java/android/content/pm/parsing/ComponentParseUtils.java b/core/java/android/content/pm/parsing/ComponentParseUtils.java index 7b24d3df92a2d..595685729a0ce 100644 --- a/core/java/android/content/pm/parsing/ComponentParseUtils.java +++ b/core/java/android/content/pm/parsing/ComponentParseUtils.java @@ -465,7 +465,8 @@ public class ComponentParseUtils { } public void setPermission(String permission) { - this.permission = TextUtils.safeIntern(permission); + // Empty string must be converted to null + this.permission = TextUtils.isEmpty(permission) ? null : permission.intern(); } public String getPermission() { @@ -842,7 +843,9 @@ public class ComponentParseUtils { } public void setReadPermission(String readPermission) { - this.readPermission = TextUtils.safeIntern(readPermission); + // Empty string must be converted to null + this.readPermission = TextUtils.isEmpty(readPermission) + ? null : readPermission.intern(); } public String getReadPermission() { @@ -850,7 +853,9 @@ public class ComponentParseUtils { } public void setWritePermission(String writePermission) { - this.writePermission = TextUtils.safeIntern(writePermission); + // Empty string must be converted to null + this.writePermission = TextUtils.isEmpty(writePermission) + ? null : writePermission.intern(); } public String getWritePermission() {