summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuc Verhaegen <libv@skynet.be>2008-10-08 14:55:29 +0200
committerLuc Verhaegen <libv@skynet.be>2008-10-08 14:55:29 +0200
commit1feb69eb63e6739ff5db255ad529e84adf941a10 (patch)
tree07e6fae40a54cd7ffafb6ae4182030da94f8b643
parentd1bb5e3b47ab71aa2f18f69daaf2a4c5ce06d800 (diff)
DGA: Fix ProcXF86DGASetViewPort for missing support in driver.
Fixes a segfault when trying to activate a DGA mode without checking whether DGA modesetting is at all possible.
-rw-r--r--hw/xfree86/dixmods/extmod/xf86dga.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/hw/xfree86/dixmods/extmod/xf86dga.c b/hw/xfree86/dixmods/extmod/xf86dga.c
index 0736167f8..c66bca26b 100644
--- a/hw/xfree86/dixmods/extmod/xf86dga.c
+++ b/hw/xfree86/dixmods/extmod/xf86dga.c
@@ -93,7 +93,7 @@ ProcXF86DGADirectVideo(ClientPtr client)
REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq);
- if (!DGAAvailable(stuff->screen))
+ if (!DGAAvailable(stuff->screen))
return DGAErrorBase + XF86DGANoDirectVideoMode;
if (stuff->enable & XF86DGADirectGraphics) {
@@ -128,7 +128,7 @@ ProcXF86DGAGetViewPortSize(ClientPtr client)
rep.length = 0;
rep.sequenceNumber = client->sequence;
- if (!DGAAvailable(stuff->screen))
+ if (!DGAAvailable(stuff->screen))
return (DGAErrorBase + XF86DGANoDirectVideoMode);
if(!(num = DGAGetOldDGAMode(stuff->screen)))
@@ -153,6 +153,9 @@ ProcXF86DGASetViewPort(ClientPtr client)
REQUEST_SIZE_MATCH(xXF86DGASetViewPortReq);
+ if (!DGAAvailable(stuff->screen))
+ return (DGAErrorBase + XF86DGANoDirectVideoMode);
+
if (!DGAActive(stuff->screen))
{
int num;