From fc37435fda67097cf0081900536a79e6af4ec4d4 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 12 Jul 2024 19:30:45 +0200 Subject: [PATCH] Xext: vidmode: ProcVidModeGetMonitor(): move local buffers on stack No need to go through global heap here, for such short-lived and small buffers. And stack variables are automatically cleaned up on leave. Signed-off-by: Enrico Weigelt, metux IT consult --- Xext/vidmode.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/Xext/vidmode.c b/Xext/vidmode.c index 2c6fbaa9fe..ebe1fa2789 100644 --- a/Xext/vidmode.c +++ b/Xext/vidmode.c @@ -1200,7 +1200,6 @@ static int ProcVidModeGetMonitor(ClientPtr client) { REQUEST(xXF86VidModeGetMonitorReq); - CARD32 *hsyncdata, *vsyncdata; ScreenPtr pScreen; VidModePtr pVidMode; int i, nHsync, nVrefresh, vendorLength = 0, modelLength = 0; @@ -1244,16 +1243,8 @@ ProcVidModeGetMonitor(ClientPtr client) pad_to_int32(modelLength)), }; - hsyncdata = xallocarray(nHsync, sizeof(CARD32)); - if (!hsyncdata) { - return BadAlloc; - } - vsyncdata = xallocarray(nVrefresh, sizeof(CARD32)); - - if (!vsyncdata) { - free(hsyncdata); - return BadAlloc; - } + CARD32 hsyncdata[nHsync]; + CARD32 vsyncdata[nVrefresh]; for (i = 0; i < nHsync; i++) { hsyncdata[i] = (unsigned short) (pVidMode->GetMonitorValue(pScreen, @@ -1287,9 +1278,6 @@ ProcVidModeGetMonitor(ClientPtr client) WriteToClient(client, rep.modelLength, (pVidMode->GetMonitorValue(pScreen, VIDMODE_MON_MODEL, 0)).ptr); - free(hsyncdata); - free(vsyncdata); - return Success; }