From 58f353dc8e7db2445363080208e64e92a1114c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=91=E5=B1=91=E5=B1=91?= Date: Tue, 15 Jul 2025 16:35:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85closeFd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 屑屑屑 --- frameworks/innerkitsimpl/common/src/pixel_map.cpp | 6 +++++- frameworks/innerkitsimpl/common/src/pixel_map_parcel.cpp | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/frameworks/innerkitsimpl/common/src/pixel_map.cpp b/frameworks/innerkitsimpl/common/src/pixel_map.cpp index 821d12f0c..8453b772d 100644 --- a/frameworks/innerkitsimpl/common/src/pixel_map.cpp +++ b/frameworks/innerkitsimpl/common/src/pixel_map.cpp @@ -2346,7 +2346,11 @@ bool PixelMap::WriteFileDescriptor(Parcel &parcel, int fd) return false; } sptr descriptor = new IPCFileDescriptor(dupFd); - return parcel.WriteObject(descriptor); + if (!parcel.WriteObject(descriptor)) { + ::close(dupFd); + return false; + } + return true; #else IMAGE_LOGE("[Pixemap] Not support Cross-Platform"); return false; diff --git a/frameworks/innerkitsimpl/common/src/pixel_map_parcel.cpp b/frameworks/innerkitsimpl/common/src/pixel_map_parcel.cpp index 43464752b..79fdbe348 100644 --- a/frameworks/innerkitsimpl/common/src/pixel_map_parcel.cpp +++ b/frameworks/innerkitsimpl/common/src/pixel_map_parcel.cpp @@ -87,6 +87,7 @@ uint8_t *PixelMapParcel::ReadAshmemDataFromParcel(OHOS::MessageParcel& data, int } if (!CheckAshmemSize(fd, bufferSize)) { IMAGE_LOGE("bufferSize does not match the fileDescriptor"); + ::close(fd); return nullptr; } void* ptr = ::mmap(nullptr, bufferSize, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); -- Gitee