diff options
-rw-r--r-- | services/core/java/com/android/server/slice/SlicePermissionManager.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/slice/SlicePermissionManager.java b/services/core/java/com/android/server/slice/SlicePermissionManager.java index d118eaea37d9..b66aaf10b993 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 @@ package com.android.server.slice; 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; @@ -424,6 +426,7 @@ public class SlicePermissionManager implements DirtyTracker { public PkgUser(String pkg, int userId) { mPkg = pkg; mUserId = userId; + enforceValidPackage(); } public PkgUser(String pkgUserStr) throws IllegalArgumentException { @@ -434,6 +437,17 @@ public class SlicePermissionManager implements DirtyTracker { } 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() { |