diff --git a/frameworks/js/jsi/src/jsi_list.cpp b/frameworks/js/jsi/src/jsi_list.cpp index 6b74eb30dcf5e5092239e8a2822acfce95249a49..c732b9457f1a05a4df399bfc6c29f298fdefa0ff 100644 --- a/frameworks/js/jsi/src/jsi_list.cpp +++ b/frameworks/js/jsi/src/jsi_list.cpp @@ -51,6 +51,9 @@ HcfResult ListAddObjNode(LiteAlgType type, uint32_t addAddr) } obj->objAddr = addAddr; + if (GetListHeader(type) == nullptr) { + return HCF_INVALID_PARAMS; + } if (GetListHeader(type)->pstNext == nullptr) { LOS_ListInit(GetListHeader(type)); } @@ -63,6 +66,9 @@ void ListDeleteObjNode(LiteAlgType type, uint32_t deleteAddr) { ObjList *obj = nullptr; ObjList *objNext = nullptr; + if (GetListHeader(type) == nullptr) { + return; + } LOS_DL_LIST_FOR_EACH_ENTRY_SAFE(obj, objNext, GetListHeader(type), ObjList, listNode) { if (obj == nullptr) { return; @@ -81,6 +87,9 @@ void ListDestroy(LiteAlgType type) { ObjList *obj = nullptr; ObjList *objNext = nullptr; + if (GetListHeader(type) == nullptr) { + return; + } LOS_DL_LIST_FOR_EACH_ENTRY_SAFE(obj, objNext, GetListHeader(type), ObjList, listNode) { if (obj == nullptr) { return; diff --git a/frameworks/js/jsi/src/jsi_md.cpp b/frameworks/js/jsi/src/jsi_md.cpp index 08bf0109bf08833c3d3570fd44319d78a457c510..9c50ede16f40611a48216034dc113d172e2edb8f 100644 --- a/frameworks/js/jsi/src/jsi_md.cpp +++ b/frameworks/js/jsi/src/jsi_md.cpp @@ -40,12 +40,14 @@ JSIValue CryptoFrameworkLiteModule::CreateMd(const JSIValue thisVal, const JSIVa HcfResult res = HcfMdCreate(reinterpret_cast(alg), &mdObj); if (res != HCF_SUCCESS) { LOGE("CreateMd is mdObj err res %d!", res); + JSI::ReleaseString(alg); return ThrowErrorCodeResult(res); } res = ListAddObjNode(JSI_ALG_MD, (uint32_t)mdObj); if (res != HCF_SUCCESS) { LOGE("md add node is %d err!", res); HcfObjDestroy(static_cast(mdObj)); + JSI::ReleaseString(alg); return ThrowErrorCodeResult(res); } @@ -63,6 +65,7 @@ JSIValue CryptoFrameworkLiteModule::CreateMd(const JSIValue thisVal, const JSIVa JSI::SetNumberProperty(serviceObj, "mdObj", (double)(uint32_t)mdObj); JSI::ReleaseValueList(update, updateSync, digest, digestSync, getMdLength, ARGS_END); + JSI::ReleaseString(alg); return serviceObj; }