waylandsink: Use memfd_create() when available
authorEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Tue, 15 Sep 2020 15:51:51 +0000 (17:51 +0200)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 15 Sep 2020 19:17:12 +0000 (19:17 +0000)
commitf97b718b4c7200b815026c03efc1074fd69912d4
treee1629676ec7d0727ef0e8888f9f2cd228a0460a9
parent7f10f8a93ef3cac84ab6be1e46fadbe1896af490
waylandsink: Use memfd_create() when available

This (so-far) Linux- and FreeBSD-only API lets users create file
descriptors purely in memory, without any backing file on the filesystem
and the race condition which could ensue when unlink()ing it.

It also allows seals to be placed on the file, ensuring to every other
process that we won’t be allowed to shrink the contents, potentially
causing a SIGBUS when they try reading it.

This patch is best viewed with the -w option of git log -p.

It is an almost exact copy of Wayland commit
6908c8c85a2e33e5654f64a55cd4f847bf385cae, see
https://gitlab.freedesktop.org/wayland/wayland/merge_requests/4

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1577>
ext/wayland/wlshmallocator.c
meson.build