---
 src/launcher-util.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/launcher-util.c b/src/launcher-util.c
index 6c28dc3..8b19b9d 100644
--- a/src/launcher-util.c
+++ b/src/launcher-util.c
@@ -80,9 +80,19 @@ drm_set_master(int drm_fd)
                return drmSetMaster(drm_fd);
        return -EBADF;
 }
+static int
+drm_check_master(int drm_fd)
+{
+       drm_magic_t magic;
+       if (drm_fd != -1)
+               return drmGetMagic(drm_fd, &magic) != 0 ||
+                      drmAuthMagic(drm_fd, magic) != 0;
+       return 0;
+}
 #else
 static int drm_drop_master(int drm_fd) {return 0;}
 static int drm_set_master(int drm_fd) {return 0;}
+static int drm_check_master(int drm_fd) {return 1;}
 #endif
 
 int
@@ -110,10 +120,8 @@ weston_launcher_open(struct weston_launcher *launcher,
                }
 
                if (major(s.st_rdev) == DRM_MAJOR) {
-                       drm_magic_t magic;
                        launcher->drm_fd = fd;
-                       if (drmGetMagic(fd, &magic) != 0 ||
-                           drmAuthMagic(fd, magic) != 0) {
+                       if (!drm_check_master(fd)) {
                                weston_log("drm fd not master\n");
                                close(fd);
                                return -1;
-- 
1.8.3.1

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to