summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}