gallium/auxiliary: replace call to dup(2) with fcntl(F_DUPFD_CLOEXEC)

Without this fix, duplicated file descriptors leak into child processes.
See commit aaac913e90 for one instance
where the same fix was employed.

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Matt Whitlock <freedesktop@mattwhitlock.name>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
(cherry picked from commit 5d0069eca2)
This commit is contained in:
Matt Whitlock 2016-10-01 23:49:42 -04:00 committed by Emil Velikov
parent d82738fbd9
commit ea3e778bff

View file

@ -26,6 +26,7 @@
**************************************************************************/
#include <assert.h>
#include <fcntl.h>
#include "pipe/p_screen.h"
#include "pipe-loader/pipe_loader.h"
@ -47,7 +48,7 @@ vl_drm_screen_create(int fd)
if (!vscreen)
return NULL;
if (fd < 0 || (new_fd = dup(fd)) < 0)
if (fd < 0 || (new_fd = fcntl(fd, F_DUPFD_CLOEXEC, 3)) < 0)
goto free_screen;
if (pipe_loader_drm_probe_fd(&vscreen->dev, new_fd))