summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Makoto Onuki <omakoto@google.com> 2017-12-11 14:57:43 -0800
committer Makoto Onuki <omakoto@google.com> 2017-12-11 14:57:43 -0800
commitd51101c9e339937aa65f42242666ad6313d5fe2b (patch)
tree47747cc2e13c8a49b7d3391c4e129ba92e881ef5
parent454c831d1d66e19eb282d0f99c7a682db4a9ae9d (diff)
Fix cancelSync() permission check for periodic syncs.
Bug: 64810615 Test: cts-tradefed run cts-dev --skip-device-info --skip-preconditions --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker -a armeabi-v7a -l INFO -m CtsContentTestCases -t android.content.cts.ContentResolverSyncTestCase Change-Id: I2aedbe3e67dbaccfd848a2725042c33a440ce705
-rw-r--r--services/core/java/com/android/server/content/ContentService.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/content/ContentService.java b/services/core/java/com/android/server/content/ContentService.java
index c4e6ff6bc906..6280edb87a02 100644
--- a/services/core/java/com/android/server/content/ContentService.java
+++ b/services/core/java/com/android/server/content/ContentService.java
@@ -644,6 +644,11 @@ public final class ContentService extends IContentService.Stub {
int userId = UserHandle.getCallingUserId();
final int callingUid = Binder.getCallingUid();
+ if (request.isPeriodic()) {
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.WRITE_SYNC_SETTINGS,
+ "no permission to write the sync settings");
+ }
+
long identityToken = clearCallingIdentity();
try {
SyncStorageEngine.EndPoint info;
@@ -653,8 +658,6 @@ public final class ContentService extends IContentService.Stub {
info = new SyncStorageEngine.EndPoint(account, provider, userId);
if (request.isPeriodic()) {
// Remove periodic sync.
- mContext.enforceCallingOrSelfPermission(Manifest.permission.WRITE_SYNC_SETTINGS,
- "no permission to write the sync settings");
getSyncManager().removePeriodicSync(info, extras,
"cancelRequest() by uid=" + callingUid);
}