summaryrefslogtreecommitdiff
authorJeremy Huddleston <jeremyhu@freedesktop.org>2008-12-09 05:59:49 (GMT)
committer Jeremy Huddleston <jeremyhu@freedesktop.org>2008-12-10 23:05:44 (GMT)
commit9cbed0a325175e7ddb751db54fe6c0f5a5cedd16 (patch) (side-by-side diff)
tree348608baaf8212da99baf5df672eede7c2c64726
parent99b2cbf061a9d074e66e6220dc08f8b4624ea6bb (diff)
downloadxserver-9cbed0a325175e7ddb751db54fe6c0f5a5cedd16.zip
xserver-9cbed0a325175e7ddb751db54fe6c0f5a5cedd16.tar.gz
XQuartz: unset DISPLAY if we didn't get a launchd socket handoff
(cherry picked from commit b959727f38733009c6381cc8ca06b5984257bdac)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--hw/xquartz/mach-startup/bundle-main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c
index 8b6d458..6b48c13 100644
--- a/hw/xquartz/mach-startup/bundle-main.c
+++ b/hw/xquartz/mach-startup/bundle-main.c
@@ -278,8 +278,12 @@ static int create_socket(char *filename_out) {
return 0;
}
+static int launchd_socket_handed_off = 0;
+
kern_return_t do_request_fd_handoff_socket(mach_port_t port, string_t filename) {
socket_handoff_t *handoff_data;
+
+ launchd_socket_handed_off = 1;
handoff_data = (socket_handoff_t *)calloc(1,sizeof(socket_handoff_t));
if(!handoff_data) {
@@ -318,6 +322,12 @@ kern_return_t do_start_x11_server(mach_port_t port, string_array_t argv,
char **_envp = alloca((envpCnt + 1) * sizeof(char *));
size_t i;
+ /* If we didn't get handed a launchd DISPLAY socket, we shoul
+ * unset DISPLAY or we can run into problems with pbproxy
+ */
+ if(!launchd_socket_handed_off)
+ unsetenv("DISPLAY");
+
if(!_argv || !_envp) {
return KERN_FAILURE;
}