summaryrefslogtreecommitdiffstats
path: root/services/java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2013-09-26 20:33:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-09-26 20:33:29 +0000
commit8c6c04197e58be6f3e46ba6a38f5d16e4fb091fa (patch)
treea8cca32f982d5127cb695917ef1b16aff80ed958 /services/java
parent8f4e289f8c1f4743a459b232b9e5ac9d58095139 (diff)
parentee2f7df9ee8a4f43c3b0858bad08a4f0a59a627f (diff)
downloadframeworks_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.java23
-rw-r--r--services/java/com/android/server/am/UriPermission.java6
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);