Skip to content

egl: Fix thread disposal issue when TLS is enabled

This issue was observed on Android, but might be not limited to Android only.

Android internally will set pthread key 1 with custom destructor which will eventually call eglReleaseThread 2.

Mesa3d will set its pthread key with custom destructor 3, which will call _eglDestroyThreadInfo().

On pthread_exit, both destructors are invoked. The second one will trigger _eglDestroyThreadInfo() and free(thread_info); The first one will read obsolete thread_info value from TLS and try to free it one more time, which will eventually crash the process.

Closes: #5466 (closed) Signed-off-by: Roman Stratiienko r.stratiienko@gmail.com

Merge request reports