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