diff --git a/hw/dmx/dmxrandr.c b/hw/dmx/dmxrandr.c index 41e7624f4..f0b69fb58 100644 --- a/hw/dmx/dmxrandr.c +++ b/hw/dmx/dmxrandr.c @@ -225,7 +225,12 @@ dmxRRUpdateCrtc (ScreenPtr pScreen, XLIB_EPILOGUE (dmxScreen); if (!gamma) + { + if (mode) + RRModeDestroy (mode); + return FALSE; + } RRCrtcGammaSet (crtc, gamma->red, gamma->green, gamma->blue); @@ -236,6 +241,9 @@ dmxRRUpdateCrtc (ScreenPtr pScreen, if (outputs) xfree (outputs); + if (mode) + RRModeDestroy (mode); + XRRFreeCrtcInfo (c); return TRUE; @@ -634,6 +642,9 @@ dmxRRGetInfo (ScreenPtr pScreen, dmxScreen->rootX, dmxScreen->rootY, RR_Rotate_0, 1, &pScrPriv->outputs[baseOutput]); + + if (mode) + RRModeDestroy (mode); } else {