diff options
| author | 2012-02-29 16:32:10 -0800 | |
|---|---|---|
| committer | 2012-02-29 16:32:10 -0800 | |
| commit | 71dea373f40ef4d35bb8b2f503693f390d1316da (patch) | |
| tree | 1fd9dc13f8b42959d133b57d9ebce35a025a9226 /drm/drmserver/DrmManagerService.cpp | |
| parent | fe35a46f56b8d512f2af8d84e381dda52dbaea20 (diff) | |
| parent | 5df628055789a14267be365beffc0626b7822e96 (diff) | |
Merge "Added permission check for all sensitive drm API calls"
Diffstat (limited to 'drm/drmserver/DrmManagerService.cpp')
| -rw-r--r-- | drm/drmserver/DrmManagerService.cpp | 21 | 
1 files changed, 21 insertions, 0 deletions
diff --git a/drm/drmserver/DrmManagerService.cpp b/drm/drmserver/DrmManagerService.cpp index caeb026ce8fc..8ba02037977b 100644 --- a/drm/drmserver/DrmManagerService.cpp +++ b/drm/drmserver/DrmManagerService.cpp @@ -159,12 +159,18 @@ int DrmManagerService::checkRightsStatus(  status_t DrmManagerService::consumeRights(              int uniqueId, DecryptHandle* decryptHandle, int action, bool reserve) {      ALOGV("Entering consumeRights"); +    if (!isProtectedCallAllowed()) { +        return DRM_ERROR_NO_PERMISSION; +    }      return mDrmManager->consumeRights(uniqueId, decryptHandle, action, reserve);  }  status_t DrmManagerService::setPlaybackStatus(              int uniqueId, DecryptHandle* decryptHandle, int playbackStatus, int64_t position) {      ALOGV("Entering setPlaybackStatus"); +    if (!isProtectedCallAllowed()) { +        return DRM_ERROR_NO_PERMISSION; +    }      return mDrmManager->setPlaybackStatus(uniqueId, decryptHandle, playbackStatus, position);  } @@ -229,12 +235,18 @@ DecryptHandle* DrmManagerService::openDecryptSession(  status_t DrmManagerService::closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle) {      ALOGV("Entering closeDecryptSession"); +    if (!isProtectedCallAllowed()) { +        return DRM_ERROR_NO_PERMISSION; +    }      return mDrmManager->closeDecryptSession(uniqueId, decryptHandle);  }  status_t DrmManagerService::initializeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle,              int decryptUnitId, const DrmBuffer* headerInfo) {      ALOGV("Entering initializeDecryptUnit"); +    if (!isProtectedCallAllowed()) { +        return DRM_ERROR_NO_PERMISSION; +    }      return mDrmManager->initializeDecryptUnit(uniqueId,decryptHandle, decryptUnitId, headerInfo);  } @@ -242,18 +254,27 @@ status_t DrmManagerService::decrypt(              int uniqueId, DecryptHandle* decryptHandle, int decryptUnitId,              const DrmBuffer* encBuffer, DrmBuffer** decBuffer, DrmBuffer* IV) {      ALOGV("Entering decrypt"); +    if (!isProtectedCallAllowed()) { +        return DRM_ERROR_NO_PERMISSION; +    }      return mDrmManager->decrypt(uniqueId, decryptHandle, decryptUnitId, encBuffer, decBuffer, IV);  }  status_t DrmManagerService::finalizeDecryptUnit(              int uniqueId, DecryptHandle* decryptHandle, int decryptUnitId) {      ALOGV("Entering finalizeDecryptUnit"); +    if (!isProtectedCallAllowed()) { +        return DRM_ERROR_NO_PERMISSION; +    }      return mDrmManager->finalizeDecryptUnit(uniqueId, decryptHandle, decryptUnitId);  }  ssize_t DrmManagerService::pread(int uniqueId, DecryptHandle* decryptHandle,              void* buffer, ssize_t numBytes, off64_t offset) {      ALOGV("Entering pread"); +    if (!isProtectedCallAllowed()) { +        return DRM_ERROR_NO_PERMISSION; +    }      return mDrmManager->pread(uniqueId, decryptHandle, buffer, numBytes, offset);  }  |