[Mesa-dev] [Mesa-stable] [PATCH 1/2] glx: drop obsolete _XUnlock_Mutex in __glXInitialize error path
Ian Romanick
idr at freedesktop.org
Wed Apr 9 11:41:13 PDT 2014
On 03/16/2014 07:10 AM, Emil Velikov wrote:
> With commit 1f1928db001(glx: Drop _Xglobal_lock while we create and
> initialize glx display) we've split the big _Xglobal_lock handling in
> a more fine grained manner.
>
> Unfortunatelly we forgot to drop the unlock_mutex on the error paths,
> leading to undefined behaviour as the mutex is already unlocked.
>
> Cc: Kristian Høgsberg <krh at bitplanet.net>
> Cc: "9.2 10.0 10.1" <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
Sorry for not looking at this sooner... I checked the code, and this
patch is obviously correct. The lock was released just a few lines
earlier (outside the patch).
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
> src/glx/glxext.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/src/glx/glxext.c b/src/glx/glxext.c
> index 4a195bd..de73036 100644
> --- a/src/glx/glxext.c
> +++ b/src/glx/glxext.c
> @@ -826,7 +826,6 @@ __glXInitialize(Display * dpy)
> dpyPriv->codes = XInitExtension(dpy, __glXExtensionName);
> if (!dpyPriv->codes) {
> free(dpyPriv);
> - _XUnlockMutex(_Xglobal_lock);
> return NULL;
> }
>
> @@ -842,7 +841,6 @@ __glXInitialize(Display * dpy)
> &dpyPriv->majorVersion, &dpyPriv->minorVersion)
> || (dpyPriv->majorVersion == 1 && dpyPriv->minorVersion < 1)) {
> free(dpyPriv);
> - _XUnlockMutex(_Xglobal_lock);
> return NULL;
> }
>
> @@ -907,7 +905,7 @@ __glXInitialize(Display * dpy)
> dpyPriv->next = glx_displays;
> glx_displays = dpyPriv;
>
> - _XUnlockMutex(_Xglobal_lock);
> + _XUnlockMutex(_Xglobal_lock);
>
> return dpyPriv;
> }
>
More information about the mesa-dev
mailing list