diff --git a/adapter/uhdf2/host/src/driver_loader_full.c b/adapter/uhdf2/host/src/driver_loader_full.c index ed55d4110b5c0e9161aa0d4fe00682b3536a137e..d2dd229078de407efcb312d0b16615b8af06b181 100644 --- a/adapter/uhdf2/host/src/driver_loader_full.c +++ b/adapter/uhdf2/host/src/driver_loader_full.c @@ -67,6 +67,7 @@ void HdfDriverLoaderFullReclaimDriver(struct HdfDriver *driver) if (driver == NULL) { return; } + dlclose(driver->priv); OsalMemFree(driver); } diff --git a/framework/core/manager/src/devmgr_service.c b/framework/core/manager/src/devmgr_service.c index 902ce8f545a3fcf3a1447eaace6aaafa9d81ebd1..e5d115b48492f799f888668246601eb2f11b107b 100644 --- a/framework/core/manager/src/devmgr_service.c +++ b/framework/core/manager/src/devmgr_service.c @@ -450,6 +450,10 @@ int DevmgrServicePowerStateChange(struct IDevmgrService *devmgrService, enum Hdf bool DevmgrServiceConstruct(struct DevmgrService *inst) { + if (inst == NULL) { + HDF_LOGE("%{public}s:inst is null ", __func__); + return false; + } struct IDevmgrService *devMgrSvcIf = NULL; if (OsalMutexInit(&inst->devMgrMutex) != HDF_SUCCESS) { HDF_LOGE("%{public}s:failed to mutex init ", __func__); diff --git a/framework/support/platform/src/watchdog/watchdog_core.c b/framework/support/platform/src/watchdog/watchdog_core.c index eb2d4c8876b1f1c8728c18aa194a09284ee1ff3a..757fc536197ed71c2ba4faef0407598b6bd9f64e 100644 --- a/framework/support/platform/src/watchdog/watchdog_core.c +++ b/framework/support/platform/src/watchdog/watchdog_core.c @@ -111,6 +111,7 @@ int32_t WatchdogCntlrGetStatus(struct WatchdogCntlr *cntlr, int32_t *status) ret = cntlr->ops->getStatus(cntlr, status); if (ret != HDF_SUCCESS) { HDF_LOGE("WatchdogCntlrGetStatus: getStatus fail!"); + (void)OsalSpinUnlockIrqRestore(&cntlr->lock, &flags); return ret; } (void)OsalSpinUnlockIrqRestore(&cntlr->lock, &flags); diff --git a/framework/tools/hdi-gen/hash/hash.cpp b/framework/tools/hdi-gen/hash/hash.cpp index ddfe3bd8c439e4aed046fb449f2eef57160f13d3..160167bb2f2332b5a3a5ac6bdd7babd2c7db780b 100644 --- a/framework/tools/hdi-gen/hash/hash.cpp +++ b/framework/tools/hdi-gen/hash/hash.cpp @@ -90,6 +90,7 @@ bool Hash::GenFileHashKey(const std::string &path, size_t &hashKey) buffer << fs.rdbuf(); hashKey = std::hash()(buffer.str()); + fs.close(); return true; } } // namespace HDI diff --git a/framework/tools/hdi-gen/util/string_builder.cpp b/framework/tools/hdi-gen/util/string_builder.cpp index 73fec49a97dc94c2551939371a2b649e302d045f..fdabf36f319cda19f6a1e039b2c2ff67b28086c4 100644 --- a/framework/tools/hdi-gen/util/string_builder.cpp +++ b/framework/tools/hdi-gen/util/string_builder.cpp @@ -33,6 +33,10 @@ StringBuilder &StringBuilder::Append(char c) } } + if (buffer_ == nullptr) { + Logger::E(TAG, "buffer_ is nullptr!"); + return *this; + } buffer_[position_] = c; position_ += 1; return *this; @@ -146,12 +150,13 @@ bool StringBuilder::Grow(size_t size) if (buffer_ != nullptr) { int ret = memcpy_s(newBuffer, newSize, buffer_, capacity_); - free(buffer_); if (ret != 0) { Logger::E(TAG, "memcpy_s error ret = %d!", ret); + free(buffer_); free(newBuffer); return false; } + free(buffer_); } buffer_ = newBuffer; capacity_ = newSize; @@ -160,6 +165,10 @@ bool StringBuilder::Grow(size_t size) std::string StringBuilder::ToString() const { + if (buffer_ == nullptr) { + Logger::E(TAG, "buffer_ is nullptr"); + return ""; + } return std::string(buffer_, position_); } } // namespace HDI