diff --git a/adapter/uhdf2/manager/src/devmgr_uevent.c b/adapter/uhdf2/manager/src/devmgr_uevent.c index 522be0d65db4553b8b05b7ec14ffc925b0067906..b1a99be09b7cc2b85d4249d8e65e526a49b6feac 100644 --- a/adapter/uhdf2/manager/src/devmgr_uevent.c +++ b/adapter/uhdf2/manager/src/devmgr_uevent.c @@ -362,11 +362,12 @@ static int32_t DevMgrUeventSocketInit(void) HDF_LOGE("create socket failed, err = %{public}d", errno); return HDF_FAILURE; } + fdsan_exchange_owner_tag(sockfd, 0, LOG_DOMAIN); int32_t buffSize = UEVENT_SOCKET_BUFF_SIZE; if (setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &buffSize, sizeof(buffSize)) != 0) { HDF_LOGE("setsockopt: SO_RCVBUF failed err = %{public}d", errno); - close(sockfd); + fdsan_close_with_tag(sockfd, LOG_DOMAIN); sockfd = -1; return HDF_FAILURE; } @@ -374,14 +375,14 @@ static int32_t DevMgrUeventSocketInit(void) const int32_t on = 1; if (setsockopt(sockfd, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)) != 0) { HDF_LOGE("setsockopt: SO_PASSCRED failed, err = %{public}d", errno); - close(sockfd); + fdsan_close_with_tag(sockfd, LOG_DOMAIN); sockfd = -1; return HDF_FAILURE; } if (bind(sockfd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { HDF_LOGE("bind socket failed, err = %{public}d", errno); - close(sockfd); + fdsan_close_with_tag(sockfd, LOG_DOMAIN); sockfd = -1; return HDF_FAILURE; } @@ -568,7 +569,7 @@ static int32_t DevMgrUeventThread(void *arg) } DevMgrUeventReleaseRuleCfgList(); - close(sfd); + fdsan_close_with_tag(sfd, LOG_DOMAIN); sfd = -1; return HDF_SUCCESS; } diff --git a/adapter/uhdf2/security/src/hdf_security.c b/adapter/uhdf2/security/src/hdf_security.c index 218d62d2d93f909fc584da63df3a8d60462c7a7d..32bfa2aac84162286f56f67d6aaa02589b7388c3 100644 --- a/adapter/uhdf2/security/src/hdf_security.c +++ b/adapter/uhdf2/security/src/hdf_security.c @@ -156,11 +156,17 @@ static int32_t HdfUpdateSecurityId(const char *id, uint64_t perms, int32_t isSet HDF_LOGE("file %{public}s is invalid", HDF_SECURE_PATH); return HDF_FAILURE; } - int32_t fd = open(path, O_WRONLY); - if (fd < 0) { + FILE *fp = fopen(path, "w"); + if (fp == NULL) { HDF_LOGE("open %{public}s failed, errno is %{public}d", HDF_SECURE_PATH, errno); return HDF_FAILURE; } + int32_t fd = fileno(file); + if (fd < 0) { + HDF_LOGE("fileno %{public}s failed, errno is %{public}d", HDF_SECURE_PATH, errno); + (void)fclose(file); + return HDF_FAILURE; + } if (isSetCurrentSecId == 0) { ret = ioctl(fd, HDF_SECURE_SET_INFO, &secInfo); @@ -170,7 +176,7 @@ static int32_t HdfUpdateSecurityId(const char *id, uint64_t perms, int32_t isSet ret = ioctl(fd, HDF_SECURE_DELETE_INFO, &secInfo); } - close(fd); + (void)fclose(file); fd = -1; if (ret != 0) { HDF_LOGE("%{public}s ioctl error, ret is %{public}d", __FUNCTION__, ret);