diff --git a/frameworks/native/src/sensor_service_client.cpp b/frameworks/native/src/sensor_service_client.cpp index bb4efab2d5e79096e0f3d6f50eecba89993138d0..ec360296699efac15685ff69d96a0c8a6cb49e8b 100644 --- a/frameworks/native/src/sensor_service_client.cpp +++ b/frameworks/native/src/sensor_service_client.cpp @@ -785,6 +785,7 @@ int32_t SensorServiceClient::CreateSocketChannel() CHKPR(sensorServer_, ERROR); int32_t clientFd = -1; ret = CreateSocketClientFd(clientFd); + fdsan_exchange_owner_tag(clientFd, 0, TAG); if (ret != ERR_OK || clientFd < 0) { Close(); SEN_HILOGE("Create socket channel failed, ret:%{public}d", ret); diff --git a/test/unittest/coverage/sensor_basic_data_channel_test.cpp b/test/unittest/coverage/sensor_basic_data_channel_test.cpp index 6c2bfa496860a833a91d12a6ef470fb7941a4489..38145b81f1da90a96e126db137ca208c794256fe 100644 --- a/test/unittest/coverage/sensor_basic_data_channel_test.cpp +++ b/test/unittest/coverage/sensor_basic_data_channel_test.cpp @@ -32,7 +32,8 @@ using namespace testing::ext; using namespace OHOS::HiviewDFX; namespace { -constexpr int32_t INVALID_FD = 2; +constexpr int32_t INVALID_FD = -2; +constexpr int32_t VALID_FD = 1; } // namespace class SensorBasicDataChannelTest : public testing::Test { @@ -76,8 +77,6 @@ HWTEST_F(SensorBasicDataChannelTest, SensorBasicDataChannelTest_001, TestSize.Le this->ReceiveData(length); }, static_cast(&sensorData), sizeof(sensorData)); ASSERT_NE(ret, ERROR); - - sensorChannel.DestroySensorBasicChannel(); } HWTEST_F(SensorBasicDataChannelTest, CreateSensorBasicChannel_001, TestSize.Level1) @@ -88,8 +87,8 @@ HWTEST_F(SensorBasicDataChannelTest, CreateSensorBasicChannel_001, TestSize.Leve MessageParcel data; data.WriteFileDescriptor(INVALID_FD); int32_t ret = sensorChannel.CreateSensorBasicChannel(data); - ASSERT_EQ(ret, ERR_OK); - + ASSERT_EQ(ret, SENSOR_CHANNEL_READ_DESCRIPTOR_ERR); + data.WriteFileDescriptor(VALID_FD); ret = sensorChannel.CreateSensorBasicChannel(data); ASSERT_EQ(ret, ERR_OK); } @@ -128,10 +127,10 @@ HWTEST_F(SensorBasicDataChannelTest, SendData_002, TestSize.Level1) MessageParcel data; data.WriteFileDescriptor(INVALID_FD); int32_t ret = sensorChannel.CreateSensorBasicChannel(data); - ASSERT_EQ(ret, ERR_OK); + ASSERT_EQ(ret, SENSOR_CHANNEL_READ_DESCRIPTOR_ERR); char buff[128] = {}; ret = sensorChannel.SendData(static_cast(buff), sizeof(buff)); - ASSERT_EQ(ret, SENSOR_CHANNEL_SEND_DATA_ERR); + ASSERT_EQ(ret, SENSOR_CHANNEL_SEND_ADDR_ERR); } HWTEST_F(SensorBasicDataChannelTest, ReceiveData_001, TestSize.Level1) @@ -150,8 +149,6 @@ HWTEST_F(SensorBasicDataChannelTest, ReceiveData_001, TestSize.Level1) this->ReceiveData(length); }, static_cast(buff1), sizeof(buff1)); ASSERT_EQ(ret, ERROR); - - sensorChannel.DestroySensorBasicChannel(); } } // namespace Sensors diff --git a/utils/common/src/sensor_basic_data_channel.cpp b/utils/common/src/sensor_basic_data_channel.cpp index a2d22155f7562da8200162818501663381cb57a9..57caae72bc47ebd108f21a503a3a4b535cfd0b1c 100644 --- a/utils/common/src/sensor_basic_data_channel.cpp +++ b/utils/common/src/sensor_basic_data_channel.cpp @@ -112,6 +112,7 @@ int32_t SensorBasicDataChannel::CreateSensorBasicChannel(MessageParcel &data) return ERR_OK; } sendFd_ = data.ReadFileDescriptor(); + fdsan_exchange_owner_tag(sendFd_, 0, TAG); if (sendFd_ < 0) { SEN_HILOGE("ReadFileDescriptor is failed"); sendFd_ = -1;