diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-09-26 20:33:29 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-09-26 20:33:29 +0000 |
commit | 8c6c04197e58be6f3e46ba6a38f5d16e4fb091fa (patch) | |
tree | a8cca32f982d5127cb695917ef1b16aff80ed958 /services/java | |
parent | 8f4e289f8c1f4743a459b232b9e5ac9d58095139 (diff) | |
parent | ee2f7df9ee8a4f43c3b0858bad08a4f0a59a627f (diff) | |
download | frameworks_base-8c6c04197e58be6f3e46ba6a38f5d16e4fb091fa.zip frameworks_base-8c6c04197e58be6f3e46ba6a38f5d16e4fb091fa.tar.gz frameworks_base-8c6c04197e58be6f3e46ba6a38f5d16e4fb091fa.tar.bz2 |
Merge "Tighten flags enforcement, API to test Uris." into klp-dev
Diffstat (limited to 'services/java')
-rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 23 | ||||
-rw-r--r-- | services/java/com/android/server/am/UriPermission.java | 6 |
2 files changed, 9 insertions, 20 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 3c11933..babe0e6 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -41,6 +41,7 @@ import com.android.internal.os.TransferPipe; import com.android.internal.util.FastPrintWriter; import com.android.internal.util.FastXmlSerializer; import com.android.internal.util.MemInfoReader; +import com.android.internal.util.Preconditions; import com.android.server.AppOpsService; import com.android.server.AttributeCache; import com.android.server.IntentResolver; @@ -6062,12 +6063,8 @@ public final class ActivityManagerService extends ActivityManagerNative } // Persistable only supported through Intents - modeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION - | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); - if (modeFlags == 0) { - throw new IllegalArgumentException("Mode flags must be " - + "FLAG_GRANT_READ_URI_PERMISSION and/or FLAG_GRANT_WRITE_URI_PERMISSION"); - } + Preconditions.checkFlagsArgument(modeFlags, + Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); grantUriPermissionLocked(r.uid, targetPkg, uri, modeFlags, null); @@ -6408,11 +6405,8 @@ public final class ActivityManagerService extends ActivityManagerNative public void takePersistableUriPermission(Uri uri, int modeFlags) { enforceNotIsolatedCaller("takePersistableUriPermission"); - modeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION - | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); - if (modeFlags == 0) { - return; - } + Preconditions.checkFlagsArgument(modeFlags, + Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); synchronized (this) { final int callingUid = Binder.getCallingUid(); @@ -6436,11 +6430,8 @@ public final class ActivityManagerService extends ActivityManagerNative public void releasePersistableUriPermission(Uri uri, int modeFlags) { enforceNotIsolatedCaller("releasePersistableUriPermission"); - modeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION - | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); - if (modeFlags == 0) { - return; - } + Preconditions.checkFlagsArgument(modeFlags, + Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); synchronized (this) { final int callingUid = Binder.getCallingUid(); diff --git a/services/java/com/android/server/am/UriPermission.java b/services/java/com/android/server/am/UriPermission.java index 7057c24..5868c08 100644 --- a/services/java/com/android/server/am/UriPermission.java +++ b/services/java/com/android/server/am/UriPermission.java @@ -22,6 +22,7 @@ import android.os.UserHandle; import android.util.Log; import android.util.Slog; +import com.android.internal.util.Preconditions; import com.google.android.collect.Sets; import java.io.PrintWriter; @@ -131,10 +132,7 @@ final class UriPermission { * @return if mode changes should trigger persisting. */ boolean takePersistableModes(int modeFlags) { - if ((~persistableModeFlags & modeFlags) != 0) { - Slog.w(TAG, "Trying to take 0x" + Integer.toHexString(modeFlags) + " but only 0x" - + Integer.toHexString(persistableModeFlags) + " are available"); - } + Preconditions.checkFlagsArgument(modeFlags, persistableModeFlags); final int before = persistedModeFlags; persistedModeFlags |= (persistableModeFlags & modeFlags); |