From 1890e7355a5464fcfff58633851265b3fc7a3731 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Tue, 3 Mar 2015 15:51:50 +0000 Subject: [PATCH] waylandsink: mkstemp requires setting permission mask Using mkstemp without setting the permission mask is potentially harmful. POSIX specification of mkstemp() does not say anything about file modes, so we need to make sure its file mode creation mask is set appropriately before calling it. --- ext/wayland/wlshmallocator.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ext/wayland/wlshmallocator.c b/ext/wayland/wlshmallocator.c index 183795c3bd..f36811f188 100644 --- a/ext/wayland/wlshmallocator.c +++ b/ext/wayland/wlshmallocator.c @@ -30,6 +30,7 @@ #include #include #include +#include GST_DEBUG_CATEGORY_EXTERN (gstwayland_debug); #define GST_CAT_DEFAULT gstwayland_debug @@ -46,6 +47,7 @@ gst_wl_shm_allocator_alloc (GstAllocator * allocator, gsize size, int fd; gpointer data; GstWlShmMemory *mem; + mode_t mask; /* TODO: make use of the allocation params, if necessary */ @@ -53,7 +55,9 @@ gst_wl_shm_allocator_alloc (GstAllocator * allocator, gsize size, snprintf (filename, 1024, "%s/%s-%d-%s", g_get_user_runtime_dir (), "wayland-shm", init++, "XXXXXX"); + mask = umask (S_IRWXO | S_IRWXG); fd = mkstemp (filename); + umask (mask); if (fd < 0) { GST_ERROR_OBJECT (self, "opening temp file %s failed: %s", filename, strerror (errno));