[PATCH 2/3] libcamera: shared_mem_object: Prevent memfd from shrinking or growing
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Wed Jul 31 10:54:14 CEST 2024
On Wed, Jul 31, 2024 at 09:40:11AM +0100, Kieran Bingham wrote:
> Quoting Milan Zamazal (2024-07-31 08:24:29)
> > Laurent Pinchart <laurent.pinchart at ideasonboard.com> writes:
> >
> > > 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.
> >
> > Makes sense to me.
> >
> > Reviewed-by: Milan Zamazal <mzamazal at redhat.com>
>
> Haha, I was going to ask about this in the previous patch - then I
> discovered this ;-)
>
> But should we - with the same logic also add MemFd::Seal::Grow to the
> allocFromUDmaBuf() implementation too?
I think we could. Do you want to submit a patch ? :-)
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> > > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > > ---
> > > src/libcamera/shared_mem_object.cpp | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/src/libcamera/shared_mem_object.cpp b/src/libcamera/shared_mem_object.cpp
> > > index 022645e71a35..d4c7991ad16a 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;
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list