| Summary: | SDL_UpdateWindowRects() SIGSEGV on X11 (shared memory) with out-of-bound rects | ||
|---|---|---|---|
| Product: | SDL | Reporter: | Marcus von Appen <mva> |
| Component: | video | Assignee: | Sam Lantinga <slouken> |
| Status: | RESOLVED FIXED | QA Contact: | Sam Lantinga <slouken> |
| Severity: | major | ||
| Priority: | P2 | ||
| Version: | HG 2.0 | ||
| Hardware: | All | ||
| OS: | FreeBSD | ||
| Attachments: |
Test program
Patch for clipping the rects to the window bounds |
||
Created attachment 896 [details]
Patch for clipping the rects to the window bounds
Looks good, thanks! http://hg.libsdl.org/SDL/rev/8f5535d05e34 |
Created attachment 895 [details] Test program Using SDL_UpdateWindowRects () with SDL_Rect instances, that do not clip to the bounds of the SDL_Window, causes a BadValue error on X11, if shared memory is enabled: X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 142 (MIT-SHM) Minor opcode of failed request: 3 (X_ShmPutImage) Value in failed request: 0x5 Serial number of failed request: 67 Current serial number in output stream: 70 Attached is a test program to recreate the behaviour along with a simple patch for SDL_x11framebuffer.c, which reduces the rect area to the window bounds. I am not sure, if XPutImage() is more robust here, so I applied it to the non-shared memory version, too.