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>
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user