From de54a79eb447108061c209f1a443101c69d51008 Mon Sep 17 00:00:00 2001 From: "Carl.Zhang" Date: Mon, 23 Mar 2026 17:03:28 +0800 Subject: [PATCH] [Media Common] Fix alloc-dealloc mismatch in VAImageBufferType destruction buf->pData is allocated with MOS_AllocAndZeroMemory (malloc) in MediaLibvaUtilNext::CreateBuffer for Media_Format_CPU buffers, but freed with MOS_DeleteArray (operator delete[]) in DestroyBuffer. This is undefined behavior and flagged by AddressSanitizer as alloc-dealloc-mismatch. Use MOS_FreeMemory (free) to match. Fixes #1985 Signed-off-by: Carl.Zhang --- .../linux/common/codec/ddi/enc/ddi_encode_functions.cpp | 2 +- media_softlet/linux/common/ddi/ddi_media_functions.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/media_softlet/linux/common/codec/ddi/enc/ddi_encode_functions.cpp b/media_softlet/linux/common/codec/ddi/enc/ddi_encode_functions.cpp index 6e2e28f10b..7bc77241aa 100644 --- a/media_softlet/linux/common/codec/ddi/enc/ddi_encode_functions.cpp +++ b/media_softlet/linux/common/codec/ddi/enc/ddi_encode_functions.cpp @@ -653,7 +653,7 @@ VAStatus DdiEncodeFunctions::DestroyBuffer ( case VAImageBufferType: if(buf->format == Media_Format_CPU) { - MOS_DeleteArray(buf->pData); + MOS_FreeMemory(buf->pData); } else { diff --git a/media_softlet/linux/common/ddi/ddi_media_functions.cpp b/media_softlet/linux/common/ddi/ddi_media_functions.cpp index 9523971366..6030871cc5 100644 --- a/media_softlet/linux/common/ddi/ddi_media_functions.cpp +++ b/media_softlet/linux/common/ddi/ddi_media_functions.cpp @@ -171,7 +171,7 @@ VAStatus DdiMediaFunctions::DestroyBuffer( case VAImageBufferType: if(buf->format == Media_Format_CPU) { - MOS_DeleteArray(buf->pData); + MOS_FreeMemory(buf->pData); } else {