mesa: don't attempt to unlock an unlocked debug state mutex
authorJonathan Gray <jsg@jsg.id.au>
Sun, 11 Dec 2016 15:42:16 +0000 (02:42 +1100)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 20 Dec 2016 19:41:04 +0000 (11:41 -0800)
commitd74c3e55b3b44d8770827a2af5dfffa10557e3c7
tree40ebaf5706ae264167a4ad2283ed4e859672b47a
parentab8ea1b3d481ff39fbfc2b75a63b24838aaf7476
mesa: don't attempt to unlock an unlocked debug state mutex

Commit 929fcee47e46781c57f2a354ce0a013915c033d1 introduced code that
attempts to unlock an unlocked mutex which is undefined behaviour.

On OpenBSD this leads to an abort:

0  0x0000124dadfa96ba in thrkill () at <stdin>:2
1  0x0000124dadf3da39 in *_libc_abort () at /usr/src/lib/libc/stdlib/abort.c:52
2  0x0000124d2c1165b5 in *_libpthread_pthread_mutex_unlock (mutexp=<optimized out>)
    at /usr/src/lib/librthread/rthread_sync.c:221
3  0x0000124d279c02e4 in init_attrib_groups (ctx=0x124df0fda000) at main/context.c:825
4  _mesa_initialize_context (ctx=ctx@entry=0x124df0fda000, api=api@entry=API_OPENGL_CORE,
    visual=visual@entry=0x7f7ffffbdfd0, share_list=share_list@entry=0x0,
    driverFunctions=driverFunctions@entry=0x7f7ffffbda60) at main/context.c:1204
5  0x0000124d27b507ec in st_create_context (api=api@entry=API_OPENGL_CORE,
    pipe=pipe@entry=0x124dc4910000, visual=visual@entry=0x7f7ffffbdfd0,
    share=share@entry=0x0, options=options@entry=0x7f7ffffbe128)
    at state_tracker/st_context.c:545
6  0x0000124d27b8639f in st_api_create_context (stapi=<optimized out>,
    smapi=0x124d1b608800, attribs=0x7f7ffffbe100, error=0x7f7ffffbe0fc, shared_stctxi=0x0)
    at state_tracker/st_manager.c:669
7  0x0000124d27cc5b9c in dri_create_context (api=<optimized out>, visual=0x124d8a0f8a00,
    cPriv=0x124de473f240, major_version=<optimized out>, minor_version=<optimized out>,
    flags=<optimized out>, notify_reset=false, error=0x7f7ffffbe2b4,
    sharedContextPrivate=0x0) at dri_context.c:123
8  0x0000124d27cc5029 in driCreateContextAttribs (screen=0x124d8a0f8400,
    api=<optimized out>, config=0x124d8a0f8a00, shared=<optimized out>,
    num_attribs=<optimized out>, attribs=<optimized out>, error=0x7f7ffffbe2b4,
    data=0x124d77814a00) at dri_util.c:448
9  0x0000124d8e109b00 in drisw_create_context_attribs (base=0x124df3e08700,
    config_base=0x124d7a0e7300, shareList=<optimized out>, num_attribs=<optimized out>,
    attribs=<optimized out>, error=0x7f7ffffbe2b4) at drisw_glx.c:476
10 0x0000124d8e104b4a in glXCreateContextAttribsARB (dpy=0x124d533f0000,
    config=0x124d7a0e7300, share_context=0x0, direct=1, attrib_list=0x7f7ffffbe300)
    at create_context.c:78

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
src/mesa/main/debug_output.c