Ken Thomases : winemac: Fail gracefully and early when run from a non-GUI session.

Alexandre Julliard julliard at winehq.org
Tue Mar 5 12:59:17 CST 2013


Module: wine
Branch: master
Commit: c76f0beeab7e463841830843297af3734792f8ab
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c76f0beeab7e463841830843297af3734792f8ab

Author: Ken Thomases <ken at codeweavers.com>
Date:   Mon Mar  4 14:46:46 2013 -0600

winemac: Fail gracefully and early when run from a non-GUI session.

---

 dlls/winemac.drv/Makefile.in   |    2 +-
 dlls/winemac.drv/macdrv_main.c |    9 +++++++++
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/dlls/winemac.drv/Makefile.in b/dlls/winemac.drv/Makefile.in
index 5b9def0..fcd41b4 100644
--- a/dlls/winemac.drv/Makefile.in
+++ b/dlls/winemac.drv/Makefile.in
@@ -1,6 +1,6 @@
 MODULE    = winemac.drv
 IMPORTS   = user32 gdi32 advapi32
-EXTRALIBS = -framework AppKit -framework Carbon
+EXTRALIBS = -framework AppKit -framework Carbon -framework Security
 
 C_SRCS = \
 	display.c \
diff --git a/dlls/winemac.drv/macdrv_main.c b/dlls/winemac.drv/macdrv_main.c
index abd5522..cd1cc0c 100644
--- a/dlls/winemac.drv/macdrv_main.c
+++ b/dlls/winemac.drv/macdrv_main.c
@@ -21,6 +21,8 @@
  */
 #include "config.h"
 
+#include <Security/AuthSession.h>
+
 #include "macdrv.h"
 #include "wine/server.h"
 
@@ -69,8 +71,15 @@ const char* debugstr_cf(CFTypeRef t)
  */
 static BOOL process_attach(void)
 {
+    SessionAttributeBits attributes;
+    OSStatus status;
+
     assert(NUM_EVENT_TYPES <= sizeof(macdrv_event_mask) * 8);
 
+    status = SessionGetInfo(callerSecuritySession, NULL, &attributes);
+    if (status != noErr || !(attributes & sessionHasGraphicAccess))
+        return FALSE;
+
     if ((thread_data_tls_index = TlsAlloc()) == TLS_OUT_OF_INDEXES) return FALSE;
 
     macdrv_err_on = ERR_ON(macdrv);




More information about the wine-cvs mailing list