[gtk] wayland: Use shm_open(SHM_ANON) on FreeBSD



commit a1bcbdd02af14406fb912dc16d789ba4a07dd4b8
Author: myfreeweb <greg@unrelenting.technology>
Date:   Tue Jun 19 14:49:18 2018 +0000

    wayland: Use shm_open(SHM_ANON) on FreeBSD
    
    This functionality is similar to Linux's memfd. It creates anonymous shared memory without touching the 
filesystem, which allows it to work in Capsicum capability mode (sandbox).

 gdk/wayland/gdkdisplay-wayland.c | 4 ++++
 1 file changed, 4 insertions(+)
---
diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c
index b64f2f105b..f83dd45046 100644
--- a/gdk/wayland/gdkdisplay-wayland.c
+++ b/gdk/wayland/gdkdisplay-wayland.c
@@ -1210,6 +1210,9 @@ open_shared_memory (void)
 
       if (force_shm_open)
         {
+#if defined (__FreeBSD__)
+          ret = shm_open (SHM_ANON, O_CREAT | O_EXCL | O_RDWR | O_CLOEXEC, 0600);
+#else
           char name[NAME_MAX - 1] = "";
 
           sprintf (name, "/gdk-wayland-%x", g_random_int ());
@@ -1220,6 +1223,7 @@ open_shared_memory (void)
             shm_unlink (name);
           else if (errno == EEXIST)
             continue;
+#endif
         }
     }
   while (ret < 0 && errno == EINTR);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]