From e872ac45f79ca2c0b538df891d983e3d5e037574 Mon Sep 17 00:00:00 2001 From: Jeff Tinker Date: Thu, 3 Mar 2016 15:47:09 -0800 Subject: [PATCH] Fix uninitialized crypto pattern Apps built against an older API don't have the recently added pattern field in MediaCodec.CryptoInfo which causes the crypto pattern fields to be uninitialized. This change ensures the pattern is initialized in all cases. bug: 27477422 Change-Id: I5796bf5fbca93dba5bf9a2b74c1c6638b9e90f65 --- media/jni/android_media_MediaCodec.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index 2004a3aef2b81..d6994b349b275 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -1302,7 +1302,10 @@ static void android_media_MediaCodec_queueSecureInputBuffer( jobject patternObj = env->GetObjectField(cryptoInfoObj, gFields.cryptoInfoPatternID); CryptoPlugin::Pattern pattern; - if (patternObj != NULL) { + if (patternObj == NULL) { + pattern.mEncryptBlocks = 0; + pattern.mSkipBlocks = 0; + } else { pattern.mEncryptBlocks = env->GetIntField(patternObj, gFields.patternEncryptBlocksID); pattern.mSkipBlocks = env->GetIntField(patternObj, gFields.patternSkipBlocksID); }