From e92416dfeb115939231819c5edb593b8bb81cc6d Mon Sep 17 00:00:00 2001 From: Ashok Bhat Date: Wed, 5 Mar 2014 11:51:15 +0000 Subject: Don't assume that size_t is 32-bit Crypto data was being copied to java jint array in chunks of size_t. This will not work on LP64 as size_t will be 64-bit. This patch changes copy to use int32_t chunks instead of size_t. Change-Id: I75d910a1182ad2f58f432cd172127f048b4c393b Signed-off-by: Ashok Bhat --- media/jni/android_media_MediaExtractor.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/media/jni/android_media_MediaExtractor.cpp b/media/jni/android_media_MediaExtractor.cpp index 705de88bba91..543cb6c1d6a7 100644 --- a/media/jni/android_media_MediaExtractor.cpp +++ b/media/jni/android_media_MediaExtractor.cpp @@ -556,7 +556,7 @@ static jboolean android_media_MediaExtractor_getSampleCryptoInfo( return JNI_FALSE; } - size_t numSubSamples = size / sizeof(size_t); + size_t numSubSamples = size / sizeof(int32_t); if (numSubSamples == 0) { return JNI_FALSE; @@ -566,7 +566,7 @@ static jboolean android_media_MediaExtractor_getSampleCryptoInfo( jboolean isCopy; jint *dst = env->GetIntArrayElements(numBytesOfEncryptedDataObj, &isCopy); for (size_t i = 0; i < numSubSamples; ++i) { - dst[i] = ((const size_t *)data)[i]; + dst[i] = ((const int32_t *)data)[i]; } env->ReleaseIntArrayElements(numBytesOfEncryptedDataObj, dst, 0); dst = NULL; @@ -583,7 +583,7 @@ static jboolean android_media_MediaExtractor_getSampleCryptoInfo( jboolean isCopy; jint *dst = env->GetIntArrayElements(numBytesOfPlainDataObj, &isCopy); for (size_t i = 0; i < numSubSamples; ++i) { - dst[i] = ((const size_t *)data)[i]; + dst[i] = ((const int32_t *)data)[i]; } env->ReleaseIntArrayElements(numBytesOfPlainDataObj, dst, 0); dst = NULL; -- cgit v1.2.3-59-g8ed1b