Xext: vidmode: protect against alloc failures and NULL pointers

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2025-05-06 17:14:52 +02:00
parent cd13a40667
commit 2594dec389

View File

@ -739,7 +739,7 @@ ProcVidModeModModeLine(ClientPtr client)
xXF86VidModeModModeLineReq newstuff;
ScreenPtr pScreen;
VidModePtr pVidMode;
DisplayModePtr mode, modetmp;
DisplayModePtr mode;
int len, dotClock;
int ver;
@ -805,7 +805,10 @@ ProcVidModeModModeLine(ClientPtr client)
if (!pVidMode->GetCurrentModeline(pScreen, &mode, &dotClock))
return BadValue;
modetmp = VidModeCreateMode();
DisplayModePtr modetmp = VidModeCreateMode();
if (!modetmp)
return BadAlloc;
VidModeCopyMode(mode, modetmp);
VidModeSetModeValue(modetmp, VIDMODE_H_DISPLAY, stuff->hdisplay);
@ -949,6 +952,9 @@ ProcVidModeValidateModeLine(ClientPtr client)
return BadValue;
modetmp = VidModeCreateMode();
if (!modetmp)
return BadAlloc;
VidModeCopyMode(mode, modetmp);
VidModeSetModeValue(modetmp, VIDMODE_H_DISPLAY, stuff->hdisplay);
@ -1370,7 +1376,7 @@ ProcVidModeGetDotClocks(ClientPtr client)
swapl(&rep.flags);
}
WriteToClient(client, sizeof(xXF86VidModeGetDotClocksReply), &rep);
if (!ClockProg) {
if (!ClockProg && Clocks) {
for (n = 0; n < numClocks; n++) {
dotclock = Clocks[n];
if (client->swapped) {