summaryrefslogtreecommitdiffstats
path: root/media/jni
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-12-08 16:08:01 -0800
committerMike Lockwood <lockwood@android.com>2010-12-08 16:09:37 -0800
commit365e03e4943b2d2f4d1e602409ab0e770ea77d1d (patch)
tree59656d96a45260585ff9e87e21f14f325cdf944a /media/jni
parent7f889328b70ef863529f1e882fdd331d9d765432 (diff)
downloadframeworks_base-365e03e4943b2d2f4d1e602409ab0e770ea77d1d.zip
frameworks_base-365e03e4943b2d2f4d1e602409ab0e770ea77d1d.tar.gz
frameworks_base-365e03e4943b2d2f4d1e602409ab0e770ea77d1d.tar.bz2
MTP: Improve argument checking in SendObjectInfo
In particular, make sure the parent is a folder and make sure file does not already exist. Change-Id: Ifa870faba3285f03a92025d9e82f93fed78a761c Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media/jni')
-rw-r--r--media/jni/android_media_MtpDatabase.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/media/jni/android_media_MtpDatabase.cpp b/media/jni/android_media_MtpDatabase.cpp
index 9bb93fd..bce1241 100644
--- a/media/jni/android_media_MtpDatabase.cpp
+++ b/media/jni/android_media_MtpDatabase.cpp
@@ -142,8 +142,9 @@ public:
MtpDataPacket& packet);
virtual MtpResponseCode getObjectFilePath(MtpObjectHandle handle,
- MtpString& filePath,
- int64_t& fileLength);
+ MtpString& outFilePath,
+ int64_t& outFileLength,
+ MtpObjectFormat& outFormat);
virtual MtpResponseCode deleteFile(MtpObjectHandle handle);
bool getObjectPropertyInfo(MtpObjectProperty property, int& type);
@@ -801,8 +802,9 @@ MtpResponseCode MyMtpDatabase::getObjectInfo(MtpObjectHandle handle,
}
MtpResponseCode MyMtpDatabase::getObjectFilePath(MtpObjectHandle handle,
- MtpString& filePath,
- int64_t& fileLength) {
+ MtpString& outFilePath,
+ int64_t& outFileLength,
+ MtpObjectFormat& outFormat) {
JNIEnv* env = AndroidRuntime::getJNIEnv();
jint result = env->CallIntMethod(mDatabase, method_getObjectFilePath,
(jint)handle, mStringBuffer, mLongBuffer);
@@ -812,11 +814,12 @@ MtpResponseCode MyMtpDatabase::getObjectFilePath(MtpObjectHandle handle,
}
jchar* str = env->GetCharArrayElements(mStringBuffer, 0);
- filePath.setTo(str, strlen16(str));
+ outFilePath.setTo(str, strlen16(str));
env->ReleaseCharArrayElements(mStringBuffer, str, 0);
jlong* longValues = env->GetLongArrayElements(mLongBuffer, 0);
- fileLength = longValues[0];
+ outFileLength = longValues[0];
+ outFormat = longValues[1];
env->ReleaseLongArrayElements(mLongBuffer, longValues, 0);
checkAndClearExceptionFromCallback(env, __FUNCTION__);