From: Andreas Gottschling Date: Fri, 27 Sep 2019 16:02:06 +0000 (-0400) Subject: drisw: Fix shared memory leak on drawable resize X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=commitdiff_plain;h=c5a2ccec5e9fa60bbec5e7b574877f8af4c14462 drisw: Fix shared memory leak on drawable resize XDestroyImage will mark the segment as to-be-destroyed, but it will persist until we detach it, and we weren't doing so. Cc: mesa-stable@lists.freedesktop.org Gitlab: https://gitlab.freedesktop.org/mesa/mesa/issues/121 Reviewed-by: Adam Jackson --- diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 45a61e654c7..3bf15322ff8 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -56,6 +56,8 @@ XCreateDrawable(struct drisw_drawable * pdp, int shmid, Display * dpy) if (pdp->ximage) { XDestroyImage(pdp->ximage); pdp->ximage = NULL; + if ((pdp->shminfo.shmid > 0) && (shmid != pdp->shminfo.shmid)) + XShmDetach(dpy, &pdp->shminfo); } if (!xshm_error && shmid >= 0) {