From 3b655a6bd8bb68633846fd5b975fbb10cd83ea65 Mon Sep 17 00:00:00 2001 From: bailu1992 Date: Wed, 5 Mar 2025 20:46:23 +0800 Subject: [PATCH 1/2] fd The associated tag is modified Signed-off-by: bailu1992 --- .../common/include/sensor_basic_data_channel.h | 1 + utils/common/src/sensor_basic_data_channel.cpp | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/utils/common/include/sensor_basic_data_channel.h b/utils/common/include/sensor_basic_data_channel.h index 449dbf9d..85ae49bd 100644 --- a/utils/common/include/sensor_basic_data_channel.h +++ b/utils/common/include/sensor_basic_data_channel.h @@ -44,6 +44,7 @@ public: const std::unordered_map &GetDataCacheBuf() const; private: + uint64_t tag(); std::mutex fdLock_; int32_t sendFd_; int32_t receiveFd_; diff --git a/utils/common/src/sensor_basic_data_channel.cpp b/utils/common/src/sensor_basic_data_channel.cpp index 4bfede6c..35a88d25 100644 --- a/utils/common/src/sensor_basic_data_channel.cpp +++ b/utils/common/src/sensor_basic_data_channel.cpp @@ -64,6 +64,8 @@ int32_t SensorBasicDataChannel::CreateSensorBasicChannel() receiveFd_ = -1; return SENSOR_CHANNEL_SOCKET_CREATE_ERR; } + fdsan_exchange_owner_tag(socketPair[0], 0, tag()); + fdsan_exchange_owner_tag(socketPair[1], 0, tag()); if (setsockopt(socketPair[0], SOL_SOCKET, SO_SNDBUF, &SENSOR_READ_DATA_SIZE, sizeof(SENSOR_READ_DATA_SIZE)) != 0) { SEN_HILOGE("setsockopt socketpair 0, SNDBUF failed, errno:%{public}d", errno); goto CLOSE_SOCK; @@ -94,8 +96,8 @@ int32_t SensorBasicDataChannel::CreateSensorBasicChannel() return ERR_OK; CLOSE_SOCK: - close(socketPair[0]); - close(socketPair[1]); + fdsan_close_with_tag(socketPair[0], tag()); + fdsan_close_with_tag(socketPair[1], tag()); sendFd_ = -1; receiveFd_ = -1; return SENSOR_CHANNEL_SOCKET_CREATE_ERR; @@ -164,7 +166,7 @@ void SensorBasicDataChannel::CloseSendFd() { std::unique_lock lock(fdLock_); if (sendFd_ != -1) { - close(sendFd_); + fdsan_close_with_tag(sendFd_, tag()); sendFd_ = -1; SEN_HILOGD("Close sendFd_"); } @@ -263,12 +265,12 @@ int32_t SensorBasicDataChannel::DestroySensorBasicChannel() { std::unique_lock lock(fdLock_); if (sendFd_ >= 0) { - close(sendFd_); + fdsan_close_with_tag(sendFd_, tag()); sendFd_ = -1; SEN_HILOGD("Close sendFd_ success"); } if (receiveFd_ >= 0) { - close(receiveFd_); + fdsan_close_with_tag(receiveFd_, tag()); receiveFd_ = -1; SEN_HILOGD("Close receiveFd_ success"); } @@ -292,5 +294,10 @@ void SensorBasicDataChannel::SetSensorStatus(bool isActive) isActive_ = isActive; return; } + +uint64_t SensorBasicDataChannel::tag() +{ + return static_cast(LOG_DOMAIN); +} } // namespace Sensors } // namespace OHOS -- Gitee From d9323dc311f4f420fc3f8c28b7f49a79639be48a Mon Sep 17 00:00:00 2001 From: bailu1992 Date: Thu, 6 Mar 2025 17:16:40 +0800 Subject: [PATCH 2/2] fd The associated tag is modified Signed-off-by: bailu1992 --- services/src/stream_server.cpp | 6 +++++- .../include/sensor_basic_data_channel.h | 1 - utils/common/include/sensor_log.h | 4 ++++ .../common/src/sensor_basic_data_channel.cpp | 19 +++++++------------ utils/ipc/src/stream_socket.cpp | 2 +- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/services/src/stream_server.cpp b/services/src/stream_server.cpp index d83fe1f2..0182e12c 100644 --- a/services/src/stream_server.cpp +++ b/services/src/stream_server.cpp @@ -91,6 +91,8 @@ int32_t StreamServer::AddSocketPairInfo(int32_t uid, int32_t pid, int32_t tokenT SEN_HILOGE("Socketpair failed, errno:%{public}d", errno); return ERROR; } + fdsan_exchange_owner_tag(sockFds[0], 0, TAG); + fdsan_exchange_owner_tag(sockFds[1], 0, TAG); serverFd = sockFds[0]; clientFd = sockFds[1]; if (serverFd < 0 || clientFd < 0) { @@ -126,6 +128,8 @@ int32_t StreamServer::AddSocketPairInfo(int32_t uid, int32_t pid, int32_t tokenT CLOSE_SOCK: close(serverFd); close(clientFd); + fdsan_close_with_tag(serverFd, TAG); + fdsan_close_with_tag(clientFd, TAG); return ERROR; } @@ -169,7 +173,7 @@ void StreamServer::DelSession(int32_t pid) sessionsMap_.erase(fdIt); } if (fd >= 0) { - int32_t ret = close(fd); + int32_t ret = fdsan_close_with_tag(fd, TAG); if (ret != 0) { SEN_HILOGE("Socket fd close failed, ret:%{public}d, errno:%{public}d", ret, errno); } diff --git a/utils/common/include/sensor_basic_data_channel.h b/utils/common/include/sensor_basic_data_channel.h index 85ae49bd..449dbf9d 100644 --- a/utils/common/include/sensor_basic_data_channel.h +++ b/utils/common/include/sensor_basic_data_channel.h @@ -44,7 +44,6 @@ public: const std::unordered_map &GetDataCacheBuf() const; private: - uint64_t tag(); std::mutex fdLock_; int32_t sendFd_; int32_t receiveFd_; diff --git a/utils/common/include/sensor_log.h b/utils/common/include/sensor_log.h index 48be0a91..3b506e45 100644 --- a/utils/common/include/sensor_log.h +++ b/utils/common/include/sensor_log.h @@ -22,6 +22,10 @@ namespace Sensors { #undef LOG_DOMAIN #define LOG_DOMAIN 0xD002700 +#ifndef TAG +#define TAG static_cast(LOG_DOMAIN) +#endif + #ifndef SENSOR_FUNC_FMT #define SENSOR_FUNC_FMT "in %{public}s, " #endif diff --git a/utils/common/src/sensor_basic_data_channel.cpp b/utils/common/src/sensor_basic_data_channel.cpp index 35a88d25..83652409 100644 --- a/utils/common/src/sensor_basic_data_channel.cpp +++ b/utils/common/src/sensor_basic_data_channel.cpp @@ -64,8 +64,8 @@ int32_t SensorBasicDataChannel::CreateSensorBasicChannel() receiveFd_ = -1; return SENSOR_CHANNEL_SOCKET_CREATE_ERR; } - fdsan_exchange_owner_tag(socketPair[0], 0, tag()); - fdsan_exchange_owner_tag(socketPair[1], 0, tag()); + fdsan_exchange_owner_tag(socketPair[0], 0, TAG); + fdsan_exchange_owner_tag(socketPair[1], 0, TAG); if (setsockopt(socketPair[0], SOL_SOCKET, SO_SNDBUF, &SENSOR_READ_DATA_SIZE, sizeof(SENSOR_READ_DATA_SIZE)) != 0) { SEN_HILOGE("setsockopt socketpair 0, SNDBUF failed, errno:%{public}d", errno); goto CLOSE_SOCK; @@ -96,8 +96,8 @@ int32_t SensorBasicDataChannel::CreateSensorBasicChannel() return ERR_OK; CLOSE_SOCK: - fdsan_close_with_tag(socketPair[0], tag()); - fdsan_close_with_tag(socketPair[1], tag()); + fdsan_close_with_tag(socketPair[0], TAG); + fdsan_close_with_tag(socketPair[1], TAG); sendFd_ = -1; receiveFd_ = -1; return SENSOR_CHANNEL_SOCKET_CREATE_ERR; @@ -166,7 +166,7 @@ void SensorBasicDataChannel::CloseSendFd() { std::unique_lock lock(fdLock_); if (sendFd_ != -1) { - fdsan_close_with_tag(sendFd_, tag()); + fdsan_close_with_tag(sendFd_, TAG); sendFd_ = -1; SEN_HILOGD("Close sendFd_"); } @@ -265,12 +265,12 @@ int32_t SensorBasicDataChannel::DestroySensorBasicChannel() { std::unique_lock lock(fdLock_); if (sendFd_ >= 0) { - fdsan_close_with_tag(sendFd_, tag()); + fdsan_close_with_tag(sendFd_, TAG); sendFd_ = -1; SEN_HILOGD("Close sendFd_ success"); } if (receiveFd_ >= 0) { - fdsan_close_with_tag(receiveFd_, tag()); + fdsan_close_with_tag(receiveFd_, TAG); receiveFd_ = -1; SEN_HILOGD("Close receiveFd_ success"); } @@ -294,10 +294,5 @@ void SensorBasicDataChannel::SetSensorStatus(bool isActive) isActive_ = isActive; return; } - -uint64_t SensorBasicDataChannel::tag() -{ - return static_cast(LOG_DOMAIN); -} } // namespace Sensors } // namespace OHOS diff --git a/utils/ipc/src/stream_socket.cpp b/utils/ipc/src/stream_socket.cpp index b7823b28..b1a8a5e4 100644 --- a/utils/ipc/src/stream_socket.cpp +++ b/utils/ipc/src/stream_socket.cpp @@ -83,7 +83,7 @@ void StreamSocket::Close() StreamSocketClose(streamSocketPtr_.get()); #else if (fd_ >= 0) { - auto rf = close(fd_); + auto rf = fdsan_close_with_tag(fd_, TAG); if (rf != 0) { SEN_HILOGE("Socket close failed, rf:%{public}d", rf); } -- Gitee