From 39c3919fa6c8f8aa11f3ffe8ba8e0d1a2b819cc6 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Fri, 22 Jun 2012 17:50:51 +0200 Subject: [PATCH] Set cloexec in shm buffer MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: If3d1920fe253d3de43aeef77afeb92f7624c6ba0 Reviewed-by: Samuel Rødal --- src/plugins/platforms/wayland/qwaylandshmbackingstore.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/wayland/qwaylandshmbackingstore.cpp b/src/plugins/platforms/wayland/qwaylandshmbackingstore.cpp index d21a995..1ba4caa 100644 --- a/src/plugins/platforms/wayland/qwaylandshmbackingstore.cpp +++ b/src/plugins/platforms/wayland/qwaylandshmbackingstore.cpp @@ -65,8 +65,14 @@ QWaylandShmBuffer::QWaylandShmBuffer(QWaylandDisplay *display, int alloc = stride * size.height(); char filename[] = "/tmp/wayland-shm-XXXXXX"; int fd = mkstemp(filename); - if (fd < 0) - qWarning("open %s failed: %s", filename, strerror(errno)); + if (fd < 0) { + qWarning("mkstemp %s failed: %s", filename, strerror(errno)); + return; + } + int flags = fcntl(fd, F_GETFD); + if (flags != -1) + fcntl(fd, F_SETFD, flags | FD_CLOEXEC); + if (ftruncate(fd, alloc) < 0) { qWarning("ftruncate failed: %s", strerror(errno)); close(fd); -- 2.7.4