| From 8a03be9603f321a2a2e12dae6519a7b043a79a4e Mon Sep 17 00:00:00 2001 |
| From: luchaopa <luchao.pang@intel.com> |
| Date: Fri, 29 Nov 2019 13:37:29 +0800 |
| Subject: [PATCH] [VP] fix illegal access and mem leak |
| |
| fix illegal access after allocation failed. |
| fix memory leak after allocation failed. |
| |
| Change-Id: I63b577f9f92a66c7c85b91a9843217539a9873d0 |
| (cherry picked from commit 9b9dd30ae96196bb13ebc06a95f4c67fcf65e394) |
| --- |
| media_driver/agnostic/common/vp/hal/vphal_renderer.cpp | 10 ++++++++++ |
| media_driver/agnostic/common/vp/kdll/hal_kerneldll.c | 2 +- |
| 2 files changed, 11 insertions(+), 1 deletion(-) |
| |
| diff --git a/media_driver/agnostic/common/vp/hal/vphal_renderer.cpp b/media_driver/agnostic/common/vp/hal/vphal_renderer.cpp |
| index 41eee450..b55b12dc 100644 |
| --- a/media_driver/agnostic/common/vp/hal/vphal_renderer.cpp |
| +++ b/media_driver/agnostic/common/vp/hal/vphal_renderer.cpp |
| @@ -1480,11 +1480,21 @@ finish: |
| if (pKernelBin) |
| { |
| MOS_SafeFreeMemory(pKernelBin); |
| + if (pKernelDllState && pKernelDllState->ComponentKernelCache.pCache == pKernelBin) |
| + { |
| + pKernelDllState->ComponentKernelCache.pCache = nullptr; |
| + } |
| + pKernelBin = nullptr; |
| } |
| |
| if (pFcPatchBin) |
| { |
| MOS_SafeFreeMemory(pFcPatchBin); |
| + if (pKernelDllState && pKernelDllState->CmFcPatchCache.pCache == pFcPatchBin) |
| + { |
| + pKernelDllState->CmFcPatchCache.pCache = nullptr; |
| + } |
| + pFcPatchBin = nullptr; |
| } |
| } |
| return eStatus; |
| diff --git a/media_driver/agnostic/common/vp/kdll/hal_kerneldll.c b/media_driver/agnostic/common/vp/kdll/hal_kerneldll.c |
| index c3b757e0..7532c736 100644 |
| --- a/media_driver/agnostic/common/vp/kdll/hal_kerneldll.c |
| +++ b/media_driver/agnostic/common/vp/kdll/hal_kerneldll.c |
| @@ -3430,8 +3430,8 @@ Kdll_State *KernelDll_AllocateStates( |
| cleanup: |
| if (pState) |
| { |
| - MOS_FreeMemory(pState->ComponentKernelCache.pCache); |
| MOS_FreeMemory(pState->pSortedRules); |
| + pState->pSortedRules = nullptr; |
| } |
| |
| // Free DL States and temporary sort buffers |
| -- |
| 2.26.2 |
| |