From 4c774ce74698cbe545fda4a2d83279a1b32cbce3 Mon Sep 17 00:00:00 2001 From: kou-chuxiong Date: Thu, 4 Sep 2025 09:16:34 +0800 Subject: [PATCH 1/2] check null in GetIpcRequestParamByType Signed-off-by: kou-chuxiong Change-Id: I08cd79c0fc04863f3874394b49b9f1f41b06f86d --- frameworks/src/lite/ipc_adapt.c | 4 ++++ frameworks/src/standard/ipc_adapt.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/frameworks/src/lite/ipc_adapt.c b/frameworks/src/lite/ipc_adapt.c index a76d549d..9df3afc6 100644 --- a/frameworks/src/lite/ipc_adapt.c +++ b/frameworks/src/lite/ipc_adapt.c @@ -1565,6 +1565,10 @@ int32_t GetIpcRequestParamByType(const IpcDataInfo *ipcParams, int32_t paramNum, } ret = HC_SUCCESS; if (IsTypeForSettingPtr(type)) { + if ((ipcParams[i].val == NULL) || (ipcParams[i].valSz <= 0)) { + ret = HC_ERR_INVALID_PARAMS; + break; + } *(uint8_t **)paramCache = ipcParams[i].val; if (cacheLen != NULL) { *cacheLen = ipcParams[i].valSz; diff --git a/frameworks/src/standard/ipc_adapt.cpp b/frameworks/src/standard/ipc_adapt.cpp index 3d08058a..61b1f2ae 100644 --- a/frameworks/src/standard/ipc_adapt.cpp +++ b/frameworks/src/standard/ipc_adapt.cpp @@ -1475,6 +1475,10 @@ int32_t GetIpcRequestParamByType(const IpcDataInfo *ipcParams, int32_t paramNum, } ret = HC_SUCCESS; if (IsTypeForSettingPtr(type)) { + if ((ipcParams[i].val == nullptr) || (ipcParams[i].valSz <= 0)) { + ret = HC_ERR_INVALID_PARAMS; + break; + } *(reinterpret_cast(paramCache)) = ipcParams[i].val; if (cacheLen != nullptr) { *cacheLen = ipcParams[i].valSz; -- Gitee From a04dad9c77bf01fdc198f96a644235ac8b67fc69 Mon Sep 17 00:00:00 2001 From: kou-chuxiong Date: Thu, 4 Sep 2025 17:06:46 +0800 Subject: [PATCH 2/2] remove valSz <= 0 Signed-off-by: kou-chuxiong Change-Id: Ie5e0446a55d123c8ca5c88cf465943d7ccaee829 --- frameworks/src/lite/ipc_adapt.c | 2 +- frameworks/src/standard/ipc_adapt.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/src/lite/ipc_adapt.c b/frameworks/src/lite/ipc_adapt.c index 9df3afc6..1e6f103a 100644 --- a/frameworks/src/lite/ipc_adapt.c +++ b/frameworks/src/lite/ipc_adapt.c @@ -1565,7 +1565,7 @@ int32_t GetIpcRequestParamByType(const IpcDataInfo *ipcParams, int32_t paramNum, } ret = HC_SUCCESS; if (IsTypeForSettingPtr(type)) { - if ((ipcParams[i].val == NULL) || (ipcParams[i].valSz <= 0)) { + if (ipcParams[i].val == NULL) { ret = HC_ERR_INVALID_PARAMS; break; } diff --git a/frameworks/src/standard/ipc_adapt.cpp b/frameworks/src/standard/ipc_adapt.cpp index 61b1f2ae..ad588f53 100644 --- a/frameworks/src/standard/ipc_adapt.cpp +++ b/frameworks/src/standard/ipc_adapt.cpp @@ -1475,7 +1475,7 @@ int32_t GetIpcRequestParamByType(const IpcDataInfo *ipcParams, int32_t paramNum, } ret = HC_SUCCESS; if (IsTypeForSettingPtr(type)) { - if ((ipcParams[i].val == nullptr) || (ipcParams[i].valSz <= 0)) { + if (ipcParams[i].val == nullptr) { ret = HC_ERR_INVALID_PARAMS; break; } -- Gitee