|  | 
| See comment in line <+44>Copy code<__egl_platform_swap_buffers+40>     ldr    r3, [pc, #36] <__egl_platform_swap_buffers+42>     movs   r2, #0
<__egl_platform_swap_buffers+44>     add    r4, sp, #24 ; There was #28
<__egl_platform_swap_buffers+46>     add    r3, pc
<__egl_platform_swap_buffers+48>     ldr    r0, [r3, #4]
<__egl_platform_swap_buffers+50>     movs   r3, #0
<__egl_platform_swap_buffers+52>     str    r4, [sp, #16]
<__egl_platform_swap_buffers+54>     strd   r2, r3, [sp]
<__egl_platform_swap_buffers+58>     strd   r2, r3, [sp, #8]
<__egl_platform_swap_buffers+62>     ldr    r0, [r0, #4]
<__egl_platform_swap_buffers+64>     bl     0xb6f5cf64 <DRI2SwapBuffers>
I think it's a bug in call to DRI2SwapBuffers. I'm not sure, but it seems that last parameter is something like some_struct *s and someone passed wrong pointer, so stack gets corrupted when DRI2SwapBuffers tries to write something to &s
 
 | 
 |