summaryrefslogtreecommitdiff
path: root/src/libcamera/media_device.cpp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2023-03-26 12:49:32 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2023-04-05 07:18:30 +0300
commit436b38fd89fe4324d2342084ef477a7a8809a001 (patch)
tree6684428b0f52868b0011ead5c36eadf10ce631cd /src/libcamera/media_device.cpp
parent4cd9cb4a90550e0c45c85b0b00ca8a72ed13fdb4 (diff)
libcamera: Open files with O_CLOEXEC
Files opened internally in libcamera without the O_CLOEXEC file will remain open upon a call to one of the exec(3) functions. As exec() doesn't destroy local or global objects, this can lead to various side effects. Avoid this by opening file descriptors with O_CLOEXEC for all internal files. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/libcamera/media_device.cpp')
-rw-r--r--src/libcamera/media_device.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
index 52c8e66e..2949816b 100644
--- a/src/libcamera/media_device.cpp
+++ b/src/libcamera/media_device.cpp
@@ -477,7 +477,7 @@ int MediaDevice::open()
return -EBUSY;
}
- fd_ = UniqueFD(::open(deviceNode_.c_str(), O_RDWR));
+ fd_ = UniqueFD(::open(deviceNode_.c_str(), O_RDWR | O_CLOEXEC));
if (!fd_.isValid()) {
int ret = -errno;
LOG(MediaDevice, Error)