From 77eb94409c3f229a6865660ef61bdf34d9757f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Camilla=20L=C3=B6wy?= Date: Mon, 16 Jan 2017 17:44:31 +0100 Subject: [PATCH] X11: Fix segfault on Cygwin/X RandR 1.5 --- README.md | 1 + src/x11_init.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index 69992746..c9647964 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,7 @@ information on what to include when reporting a bug. - [Win32] Bugfix: Deadzone logic could underflow with some controllers (#910) - [Win32] Bugfix: Bitness test in `FindVulkan.cmake` was VS specific (#928) - [X11] Replaced `_GLFW_HAS_XF86VM` compile-time option with dynamic loading +- [X11] Bugfix: `glfwGetVideoMode` would segfault on Cygwin/X - [Cocoa] Added support for Vulkan window surface creation via [MoltenVK](https://moltengl.com/moltenvk/) (#870) - [Cocoa] Bugfix: Disabling window aspect ratio would assert (#852) diff --git a/src/x11_init.c b/src/x11_init.c index 2bb2b65a..e8421fd9 100644 --- a/src/x11_init.c +++ b/src/x11_init.c @@ -513,6 +513,15 @@ static GLFWbool initExtensions(void) _glfw.x11.randr.gammaBroken = GLFW_TRUE; } + if (!sr->ncrtc || !sr->noutput || !sr->nmode) + { + // This is either a headless system or broken Cygwin/X RandR + // Flag it as useless and fall back to Xlib display functions + _glfwInputError(GLFW_PLATFORM_ERROR, + "X11: RandR monitor support seems broken"); + _glfw.x11.randr.monitorBroken = GLFW_TRUE; + } + XRRFreeScreenResources(sr); XRRSelectInput(_glfw.x11.display, _glfw.x11.root,