mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-31 11:32:38 +00:00
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.
This commit is contained in:
parent
4521524de3
commit
1890e7355a
1 changed files with 4 additions and 0 deletions
|
@ -30,6 +30,7 @@
|
|||
#include <unistd.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
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));
|
||||
|
|
Loading…
Reference in a new issue