diff options
author | shubang <shubang@google.com> | 2020-08-03 15:25:09 -0700 |
---|---|---|
committer | Henry Fang <quxiangfang@google.com> | 2020-12-29 20:52:54 +0000 |
commit | 5b0bfdb03d12d610acf33601e529e87bfb6e021f (patch) | |
tree | 0a32dd7b6ff9f56b80a70faf15eb2d9d18756354 /media | |
parent | eec09803da33c931644f8cabfefd0d9a72547862 (diff) |
Tuner JNI: Correct memcpy of C2DataIdInfo
Bug: 162778666
Test: mannual test by MTK
Change-Id: Ic97717e5fc32d97837e218fe769087b5abece2cb
Merged-In: Ic97717e5fc32d97837e218fe769087b5abece2cb
Diffstat (limited to 'media')
-rw-r--r-- | media/jni/android_media_tv_Tuner.cpp | 5 | ||||
-rw-r--r-- | media/jni/android_media_tv_Tuner.h | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp index 515d610109ab..9a9781249d92 100644 --- a/media/jni/android_media_tv_Tuner.cpp +++ b/media/jni/android_media_tv_Tuner.cpp @@ -291,8 +291,9 @@ MQ& Dvr::getDvrMQ() { C2DataIdInfo::C2DataIdInfo(uint32_t index, uint64_t value) : C2Param(kParamSize, index) { CHECK(isGlobal()); CHECK_EQ(C2Param::INFO, kind()); - DummyInfo info{value}; - memcpy(this + 1, static_cast<C2Param *>(&info) + 1, kParamSize - sizeof(C2Param)); + mInfo = StubInfo(value); + memcpy(static_cast<C2Param *>(this) + 1, static_cast<C2Param *>(&mInfo) + 1, + kParamSize - sizeof(C2Param)); } /////////////// MediaEvent /////////////////////// diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h index 83e9db796363..fd2995917475 100644 --- a/media/jni/android_media_tv_Tuner.h +++ b/media/jni/android_media_tv_Tuner.h @@ -250,8 +250,9 @@ class C2DataIdInfo : public C2Param { public: C2DataIdInfo(uint32_t index, uint64_t value); private: - typedef C2GlobalParam<C2Info, C2Int64Value, 0> DummyInfo; - static const size_t kParamSize = sizeof(DummyInfo); + typedef C2GlobalParam<C2Info, C2Int64Value, 0> StubInfo; + StubInfo mInfo; + static const size_t kParamSize = sizeof(StubInfo); }; } // namespace android |