Bug 69071 - _eglGetNativePlatform should not fall back to build-time configuration
Summary: _eglGetNativePlatform should not fall back to build-time configuration
Status: NEW
Alias: None
Product: Mesa
Classification: Unclassified
Component: EGL (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium minor
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-07 14:57 UTC by Guillaume Melquiond
Modified: 2013-09-07 14:57 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Guillaume Melquiond 2013-09-07 14:57:58 UTC
In src/egl/main/egldisplay.c, function _eglGetNativePlatform looks at the content of nativeDisplay. If this content does not match any of the supported platforms, it returns one of the platforms selected at configure time (the first one?).

As a consequence, if Mesa is configured without X11 support for EGL and you try to run an EGL application under X, nativeDisplay contains the value returned by XOpenDisplay; then _eglNativePlatformDetectNativeDisplay returns _EGL_INVALID_PLATFORM; finally _eglGetNativePlatform falls back to _EGL_PLATFORM_WAYLAND (for instance). Mesa ends up crashing in src/egl/drivers/dri2/platform_wayland.c because dri2_dpy->wl_dpy does not point to a wl_display structure.

Note that _eglNativePlatformDetectNativeDisplay correctly infers that the platform cannot be Wayland (since nativeDisplay does not point to a Wayland structure), still _eglGetNativePlatform falls back to it. Platform types ruled out by _eglNativePlatformDetectNativeDisplay should never be returned by _eglGetNativePlatform.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.