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

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Nov 30 04:38:09 CET 2021


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>
---
 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