diff --git a/adapter/khdf/liteos/model/misc/dsoftbus/src/softbus_lwip_monitor.c b/adapter/khdf/liteos/model/misc/dsoftbus/src/softbus_lwip_monitor.c index 9330256d25eb1e87cb69a10abab63f7614aa0055..363d1e4464286885d66f22089b740d3d7292f765 100644 --- a/adapter/khdf/liteos/model/misc/dsoftbus/src/softbus_lwip_monitor.c +++ b/adapter/khdf/liteos/model/misc/dsoftbus/src/softbus_lwip_monitor.c @@ -83,7 +83,7 @@ static void NetifStatusCallback(struct netif *netif, netif_nsc_reason_t reason, } dprintf("NetifStatusCallback(%s): nsc event: 0x%x\n", netif->full_name, (uint32_t)reason); if (strncpy_s(reportInfo.ifName, NETIF_NAME_LENGTH, netif->full_name, strlen(netif->full_name)) != EOK) { - dprintf("NetifStatusCallback(%s): copy netif full name fail: %s\n", netif->full_name); + dprintf("NetifStatusCallback(%s): copy netif full name fail.\n", netif->full_name); return; } switch (reason) { diff --git a/interfaces/inner_api/hdi/base/hdi_smq.h b/interfaces/inner_api/hdi/base/hdi_smq.h index fbe0573da77b96ce1ca041730fae02440082faef..f96784ca2e989ffa1680afb15c2d331e831e890b 100644 --- a/interfaces/inner_api/hdi/base/hdi_smq.h +++ b/interfaces/inner_api/hdi/base/hdi_smq.h @@ -278,6 +278,11 @@ SharedMemQueue::SharedMemQueue(uint32_t elementCount, SmqType type) } meta_ = std::make_shared>(elementCount, type); + if (meta_ == nullptr) { + HDF_LOGE("Create SharedMemQueueMeta failed, meta_ is nullptr"); + return; + } + HDF_LOGI("create SharedMemQueue, count=%{public}u, size=%{public}zu", elementCount, meta_->GetSize()); int ashmemFd = AshmemCreate("hdi_smq", Align(meta_->GetSize(), PAGE_SIZE)); if (ashmemFd < 0) { @@ -368,6 +373,11 @@ void SharedMemQueue::Init(bool resetWriteOffset) template uintptr_t SharedMemQueue::MapMemZone(uint32_t zoneType) { + if (meta_ == nullptr) { + HDF_LOGE("meta_ is nullptr, zoneType: %{public}u.", zoneType); + return reinterpret_cast(nullptr); + } + auto memzone = meta_->GetMemZone(zoneType); if (memzone == nullptr) { HDF_LOGE("invalid smq mem zone type %{public}u", zoneType); @@ -390,6 +400,10 @@ uintptr_t SharedMemQueue::MapMemZone(uint32_t zoneType) template void SharedMemQueue::UnMapMemZone(void *addr, uint32_t zoneType) { + if (meta_ == nullptr) { + HDF_LOGE("meta_ is nullptr, zoneType: %{public}u.", zoneType); + return; + } auto memzone = meta_->GetMemZone(zoneType); if (memzone == nullptr) { return; @@ -446,6 +460,10 @@ int SharedMemQueue::Read(T *data) template int SharedMemQueue::Write(const T *data, size_t count, int64_t waitTimeNanoSec) { + if (meta_ == nullptr) { + HDF_LOGE("Write, meta_ is nullptr, count: %{public}zu, waitTimeNanoSec: %{public}lld.", count, waitTimeNanoSec); + return HDF_ERR_INVALID_OBJECT; + } if (meta_->GetType() != SmqType::SYNCED_SMQ) { HDF_LOGE("unsynecd smq not support blocking write"); return HDF_ERR_NOT_SUPPORT; @@ -494,6 +512,10 @@ int SharedMemQueue::Write(const T *data, size_t count, int64_t waitTimeNanoSe template int SharedMemQueue::Reset() { + if (meta_ == nullptr) { + HDF_LOGE("meta_ is nullptr."); + return HDF_ERR_INVALID_OBJECT; + } // do not invoke this function in multi-thread in same side if (meta_->GetType() != SmqType::SYNCED_SMQ) { HDF_LOGW("unsynecd smq reset status"); @@ -517,6 +539,10 @@ int SharedMemQueue::Reset() template int SharedMemQueue::Read(T *data, size_t count, int64_t waitTimeNanoSec) { + if (meta_ == nullptr) { + HDF_LOGE("Read, meta_ is nullptr, count: %{public}zu, waitTimeNanoSec: %{public}lld.", count, waitTimeNanoSec); + return HDF_ERR_INVALID_OBJECT; + } if (meta_->GetType() != SmqType::SYNCED_SMQ) { HDF_LOGE("unsynecd smq not support blocking read"); return HDF_ERR_NOT_SUPPORT; @@ -576,6 +602,10 @@ int SharedMemQueue::ReadNonBlocking(T *data) template int SharedMemQueue::WriteNonBlocking(const T *data, size_t count) { + if (meta_ == nullptr) { + HDF_LOGE("meta_ is nullptr, count: %{public}zu.", count); + return HDF_ERR_INVALID_OBJECT; + } auto avalidWrite = GetAvalidWriteSize(); if (count > avalidWrite && meta_->GetType() == SmqType::SYNCED_SMQ) { // synced smq can not overflow write @@ -623,6 +653,10 @@ int SharedMemQueue::WriteNonBlocking(const T *data, size_t count) template int SharedMemQueue::ReadNonBlocking(T *data, size_t count) { + if (meta_ == nullptr) { + HDF_LOGE("meta_ is nullptr, count: %{public}zu.", count); + return HDF_ERR_INVALID_OBJECT; + } if (count == 0) { HDF_LOGE("Try to read zero data from smq!"); return -EINVAL; @@ -670,12 +704,20 @@ int SharedMemQueue::ReadNonBlocking(T *data, size_t count) template size_t SharedMemQueue::GetAvalidWriteSize() { + if (meta_ == nullptr) { + HDF_LOGE("GetAvalidWriteSize, meta_ is nullptr."); + return 0; + } return meta_->GetElementCount() - GetAvalidReadSize(); } template size_t SharedMemQueue::GetAvalidReadSize() { + if (meta_ == nullptr) { + HDF_LOGE("GetAvalidReadSize, meta_ is nullptr."); + return 0; + } auto wOffset = writeOffset_->load(std::memory_order_acquire); auto rOffset = readOffset_->load(std::memory_order_acquire); auto size = wOffset >= rOffset ? (wOffset - rOffset) : (wOffset + meta_->GetElementCount() + 1 - rOffset); @@ -685,6 +727,10 @@ size_t SharedMemQueue::GetAvalidReadSize() template size_t SharedMemQueue::GetSize() { + if (meta_ == nullptr) { + HDF_LOGE("GetSize, meta_ is nullptr."); + return 0; + } return meta_->GetSize(); }