summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-05-20 19:57:12 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-05-20 19:57:12 -0700
commit44722c6dc80b0bc3710f6a7fea31440988e8e3b6 (patch)
tree8c713bbfd2362bec94aba95c4a0dee8576096351 /media/libmediaplayerservice
parent3f52b1961f7a7185b204cacba836b8feb1215468 (diff)
parent510d6566bd2494991fac07aee46fcb2ddac99c13 (diff)
downloadframeworks_av-44722c6dc80b0bc3710f6a7fea31440988e8e3b6.zip
frameworks_av-44722c6dc80b0bc3710f6a7fea31440988e8e3b6.tar.gz
frameworks_av-44722c6dc80b0bc3710f6a7fea31440988e8e3b6.tar.bz2
Merge change 2163 into donut
* changes: Fix permission hole for RECORD_AUDIO created when we moved the MediaRecorder implementation to the mediaserver process. The permission check was previously enforced only at the AudioRecord binder interface for clients not in the same process. This change adds an additional check when the client tries to set the audio source. Bug 1868334
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/MediaRecorderClient.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/MediaRecorderClient.cpp b/media/libmediaplayerservice/MediaRecorderClient.cpp
index e0d2947..8bc410c 100644
--- a/media/libmediaplayerservice/MediaRecorderClient.cpp
+++ b/media/libmediaplayerservice/MediaRecorderClient.cpp
@@ -37,6 +37,7 @@
namespace android {
const char* cameraPermission = "android.permission.CAMERA";
+const char* recordAudioPermission = "android.permission.RECORD_AUDIO";
static bool checkPermission(const char* permissionString) {
#ifndef HAVE_ANDROID_OS
@@ -86,6 +87,9 @@ status_t MediaRecorderClient::setVideoSource(int vs)
status_t MediaRecorderClient::setAudioSource(int as)
{
LOGV("setAudioSource(%d)", as);
+ if (!checkPermission(recordAudioPermission)) {
+ return PERMISSION_DENIED;
+ }
Mutex::Autolock lock(mLock);
if (mRecorder == NULL) {
LOGE("recorder is not initialized");