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() {