[libcamera-devel] [PATCH v4 11/22] libcamera: ipc_unixsocket: Fix file descriptor leak

Hirokazu Honda hiroh at chromium.org
Tue Nov 30 06:19:00 CET 2021


Hi Laurent,

On Tue, Nov 30, 2021 at 12:39 PM Laurent Pinchart
<laurent.pinchart at ideasonboard.com> wrote:
>
> The file descriptor created for the remote side of the socket is passed
> to the forked process, but never closed. Fix the leak.
>
> The fix can be tested by running the unixsocket_ipc unit test under
> valgrind with `valgrind --track-fds=yes ./test/ipc/unixsocket_ipc`.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Reviewed-by: Hirokazu Honda <hiroh at chromium.org>
> ---
>  src/libcamera/ipc_pipe_unixsocket.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/libcamera/ipc_pipe_unixsocket.cpp b/src/libcamera/ipc_pipe_unixsocket.cpp
> index 65277500ff42..3ef907090131 100644
> --- a/src/libcamera/ipc_pipe_unixsocket.cpp
> +++ b/src/libcamera/ipc_pipe_unixsocket.cpp
> @@ -38,7 +38,7 @@ IPCPipeUnixSocket::IPCPipeUnixSocket(const char *ipaModulePath,
>         }
>         socket_->readyRead.connect(this, &IPCPipeUnixSocket::readyRead);
>         args.push_back(std::to_string(fd.get()));
> -       fds.push_back(fd.release());
> +       fds.push_back(fd.get());
>
>         proc_ = std::make_unique<Process>();
>         int ret = proc_->start(ipaProxyWorkerPath, args, fds);
> --
> Regards,
>
> Laurent Pinchart
>


More information about the libcamera-devel mailing list