From dc7a2d185d55a7a5bc99f0b335c92cadd9787baf Mon Sep 17 00:00:00 2001 From: pxd2022 Date: Mon, 15 Apr 2024 02:31:20 +0000 Subject: [PATCH 1/2] update display/composer/hdifd_parcelable/hdifd_parcelable.cpp. Signed-off-by: pxd2022 --- .../hdifd_parcelable/hdifd_parcelable.cpp | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/display/composer/hdifd_parcelable/hdifd_parcelable.cpp b/display/composer/hdifd_parcelable/hdifd_parcelable.cpp index 3ab07c9a..f11c0eb5 100644 --- a/display/composer/hdifd_parcelable/hdifd_parcelable.cpp +++ b/display/composer/hdifd_parcelable/hdifd_parcelable.cpp @@ -26,6 +26,9 @@ #undef LOG_DOMAIN #define LOG_DOMAIN 0xD002515 +#define MONITOR_FD_MIN 2000 +#define MONITOR_FD_MAX 2020 + namespace OHOS { namespace HDI { namespace Display { @@ -42,6 +45,9 @@ HdifdParcelable::HdifdParcelable(int32_t fd) HdifdParcelable::~HdifdParcelable() { if (isOwner_ && (hdiFd_ >= 0)) { + if (hdiFd_ >= MONITOR_FD_MIN && hdiFd_ <= MONITOR_FD_MAX) { + HDF_LOGI("close FD:%{public}d", hdiFd_); + } close(hdiFd_); } } @@ -58,6 +64,9 @@ bool HdifdParcelable::Init(int32_t fd) hdiFd_ = -1; } else { hdiFd_ = dup(fd); + if (hdiFd_ >= MONITOR_FD_MIN && hdiFd_ <= MONITOR_FD_MAX) { + HDF_LOGI("dup FD:%{public}d from %{public}d", hdiFd_, fd); + } ret = (hdiFd_ < 0) ? false : true; } if (!ret) { @@ -77,16 +86,24 @@ bool HdifdParcelable::WriteFileDescriptor(const int fd, Parcel& parcel) if (dupFd < 0) { return false; } - + if (dupFd >= MONITOR_FD_MIN && dupFd <= MONITOR_FD_MAX) { + HDF_LOGI("dup FD:%{public}d from %{public}d", dupFd, fd); + } sptr descriptor(new (std::nothrow) IPCFileDescriptor(dupFd)); if (descriptor == nullptr) { HDF_LOGE("%{public}s: create IPCFileDescriptor object failed", __func__); + if (dupFd >= MONITOR_FD_MIN && dupFd <= MONITOR_FD_MAX) { + HDF_LOGI("close FD:%{public}d", dupFd); + } close(dupFd); return false; } bool ret = parcel.WriteObject(descriptor); if (!ret) { HDF_LOGE("%{public}s: WriteObject IPCFileDescriptor failed", __func__); + if (dupFd >= MONITOR_FD_MIN && dupFd <= MONITOR_FD_MAX) { + HDF_LOGI("close FD:%{public}d", dupFd); + } close(dupFd); return false; } @@ -103,7 +120,11 @@ int HdifdParcelable::ReadFileDescriptor(Parcel& parcel) if (fd < 0) { return -1; } - return dup(fd); + int dupFd = dup(fd); + if (dupFd >= MONITOR_FD_MIN && dupFd <= MONITOR_FD_MAX) { + HDF_LOGI("dup FD:%{public}d from %{public}d", dupFd, fd); + } + return dupFd; } bool HdifdParcelable::Marshalling(Parcel& parcel) const @@ -142,6 +163,9 @@ sptr HdifdParcelable::Unmarshalling(Parcel& parcel) if (fd >= 0) { close(fd); } + if (fd >= MONITOR_FD_MIN && fd <= MONITOR_FD_MAX) { + HDF_LOGI("close FD:%{public}d", hdiFd_); + } return sptr(); } return newParcelable; @@ -154,6 +178,9 @@ int32_t HdifdParcelable::GetFd() int32_t HdifdParcelable::Move() { + if (hdiFd_ >= MONITOR_FD_MIN && hdiFd_ <= MONITOR_FD_MAX) { + HDF_LOGI("not own FD:%{public}d", hdiFd_); + } isOwner_ = false; return hdiFd_; } -- Gitee From da1eccec39cbdddc284e61f3a9bd9d3825549b06 Mon Sep 17 00:00:00 2001 From: pxd2022 Date: Mon, 15 Apr 2024 06:07:42 +0000 Subject: [PATCH 2/2] update display/composer/hdifd_parcelable/hdifd_parcelable.cpp. Signed-off-by: pxd2022 --- display/composer/hdifd_parcelable/hdifd_parcelable.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/display/composer/hdifd_parcelable/hdifd_parcelable.cpp b/display/composer/hdifd_parcelable/hdifd_parcelable.cpp index f11c0eb5..87571c62 100644 --- a/display/composer/hdifd_parcelable/hdifd_parcelable.cpp +++ b/display/composer/hdifd_parcelable/hdifd_parcelable.cpp @@ -164,7 +164,7 @@ sptr HdifdParcelable::Unmarshalling(Parcel& parcel) close(fd); } if (fd >= MONITOR_FD_MIN && fd <= MONITOR_FD_MAX) { - HDF_LOGI("close FD:%{public}d", hdiFd_); + HDF_LOGI("close FD:%{public}d", fd); } return sptr(); } -- Gitee