From e104df94836ebf34d7f1a8654a9795b0a7619fda Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Mon, 14 Jan 2019 14:03:36 -0800 Subject: [PATCH] CursorWindow.cpp: replace dup() with fcntl(F_DUPFD_CLOEXEC) Replace calls to dup() with fcntl(F_DUPFD_CLOEXEC). The only difference between the two is that O_CLOEXEC is set on the newly duped file descriptor. This helps address file descriptor leaks crossing an exec() boundary. Test: compiles and boots Bug: 120983106 Change-Id: Icc2ff2f7f398905aa8283c8797898114d34a9829 --- libs/androidfw/CursorWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/androidfw/CursorWindow.cpp b/libs/androidfw/CursorWindow.cpp index 5694115f61aa9..a99e77f8dbb93 100644 --- a/libs/androidfw/CursorWindow.cpp +++ b/libs/androidfw/CursorWindow.cpp @@ -94,7 +94,7 @@ status_t CursorWindow::createFromParcel(Parcel* parcel, CursorWindow** outCursor if (size < 0) { result = UNKNOWN_ERROR; } else { - int dupAshmemFd = ::dup(ashmemFd); + int dupAshmemFd = ::fcntl(ashmemFd, F_DUPFD_CLOEXEC, 0); if (dupAshmemFd < 0) { result = -errno; } else {