diff options
| author | 2017-12-11 14:57:43 -0800 | |
|---|---|---|
| committer | 2017-12-11 14:57:43 -0800 | |
| commit | d51101c9e339937aa65f42242666ad6313d5fe2b (patch) | |
| tree | 47747cc2e13c8a49b7d3391c4e129ba92e881ef5 | |
| parent | 454c831d1d66e19eb282d0f99c7a682db4a9ae9d (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.java | 7 |
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); } |