Hi Sam
authorSam Lantinga <slouken@libsdl.org>
Fri, 2 Dec 2011 23:35:04 +0000 (18:35 -0500)
committernotaz <notasas@gmail.com>
Mon, 11 Mar 2013 21:08:01 +0000 (23:08 +0200)
In X11_CreateYUVOverlay hwdata->image will be accessed after it has been
freed, causing undefined behavior. Exchanging two lines as shown in this
patch will fix that problem:

Regards, Bodo

src/video/x11/SDL_x11yuv.c

index 0372c5a..f3c2a30 100644 (file)
@@ -330,8 +330,8 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S
 #ifdef PITCH_WORKAROUND
        if ( hwdata->image != NULL && hwdata->image->pitches[0] != (width*bpp) ) {
                /* Ajust overlay width according to pitch */ 
-               XFree(hwdata->image);
                width = hwdata->image->pitches[0] / bpp;
+               XFree(hwdata->image);
                hwdata->image = SDL_NAME(XvShmCreateImage)(GFX_Display, xv_port, format,
                                                           0, width, height, yuvshm);
        }