Ensuring valid packageName when granting slice permission Bug: 401256328 Test: atest SliceManagerTest Flag: EXEMPT bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:53c79b8cd60ff42717f9da3f85b5a576c1d56833) Merged-In: I8e28097c0570922d9fb9ec9588b45bf4361a5020 Change-Id: I8e28097c0570922d9fb9ec9588b45bf4361a5020
diff --git a/services/core/java/com/android/server/slice/SlicePermissionManager.java b/services/core/java/com/android/server/slice/SlicePermissionManager.java index 343d2e3..27578a0 100644 --- a/services/core/java/com/android/server/slice/SlicePermissionManager.java +++ b/services/core/java/com/android/server/slice/SlicePermissionManager.java
@@ -16,11 +16,13 @@ import android.content.ContentProvider; import android.content.Context; +import android.content.pm.parsing.FrameworkParsingPackageUtils; import android.net.Uri; import android.os.Environment; import android.os.Handler; import android.os.Looper; import android.os.Message; +import android.text.TextUtils; import android.text.format.DateUtils; import android.util.ArrayMap; import android.util.ArraySet; @@ -410,6 +412,7 @@ public PkgUser(String pkg, int userId) { mPkg = pkg; mUserId = userId; + enforceValidPackage(); } public PkgUser(String pkgUserStr) throws IllegalArgumentException { @@ -420,6 +423,17 @@ } catch (Exception e) { throw new IllegalArgumentException(e); } + enforceValidPackage(); + } + + private void enforceValidPackage() { + String error = FrameworkParsingPackageUtils.validateName( + mPkg, + false /* requireSeparator */, + true /* requireFilename */); + if (!TextUtils.isEmpty(error)) { + throw new IllegalArgumentException((error)); + } } public String getPkg() {