diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2024-07-31 02:09:44 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2024-08-01 01:22:14 +0300 |
commit | efc7a85bc00a767427c219a43d0bb420dfc6361b (patch) | |
tree | 7a4efcd5d0da89a4febe098b8b0f811402648f26 | |
parent | 93d975194522450894a6fe7554b28a14fbfe7214 (diff) |
libcamera: shared_mem_object: Prevent memfd from shrinking or growing
The memfd underlying the SharedMem object must not shrink, or memory
corruption will happen. Prevent this by setting the shrink seal on the
file. As there's no valid use case for growing the memory either, set
the grow seal as well.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Tested-by: Milan Zamazal <mzamazal@redhat.com>
Tested-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | src/libcamera/shared_mem_object.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libcamera/shared_mem_object.cpp b/src/libcamera/shared_mem_object.cpp index 022645e7..d4c7991a 100644 --- a/src/libcamera/shared_mem_object.cpp +++ b/src/libcamera/shared_mem_object.cpp @@ -58,7 +58,8 @@ SharedMem::SharedMem() = default; */ SharedMem::SharedMem(const std::string &name, std::size_t size) { - UniqueFD memfd = MemFd::create(name.c_str(), size); + UniqueFD memfd = MemFd::create(name.c_str(), size, MemFd::Seal::Shrink | + MemFd::Seal::Grow); if (!memfd.isValid()) return; |