diff options
| author | Mike Lockwood <lockwood@android.com> | 2010-12-08 16:08:01 -0800 |
|---|---|---|
| committer | Mike Lockwood <lockwood@android.com> | 2010-12-08 16:09:37 -0800 |
| commit | 365e03e4943b2d2f4d1e602409ab0e770ea77d1d (patch) | |
| tree | 59656d96a45260585ff9e87e21f14f325cdf944a /media/jni | |
| parent | 7f889328b70ef863529f1e882fdd331d9d765432 (diff) | |
| download | frameworks_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.cpp | 15 |
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__); |
