summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Vignatti <tiago.vignatti@nokia.com>2010-12-17 16:09:35 +0200
committerJulien Cristau <jcristau@debian.org>2011-01-10 15:19:34 +0100
commit6a6d907e77777057cadbd80572119c09732385cd (patch)
tree102c3ee3f2631252a6f01ce40653e80eb1c30b6f
parent5b979a13df331ad28ce7f1c90d6e059f6fd4eedb (diff)
randr: check for virtual size limits before set crtc
Return a error if the screen is configured to an invalid size. Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Keith Packard <keithp@keithp.com> (cherry picked from commit d1107918d4626268803b54033a07405122278e7f)
-rw-r--r--randr/rrscreen.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index 630ff5742..0fee1f57c 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -921,6 +921,18 @@ ProcRRSetScreenConfig (ClientPtr client)
width = mode->mode.height;
height = mode->mode.width;
}
+
+ if (width < pScrPriv->minWidth || pScrPriv->maxWidth < width) {
+ client->errorValue = width;
+ free(pData);
+ return BadValue;
+ }
+ if (height < pScrPriv->minHeight || pScrPriv->maxHeight < height) {
+ client->errorValue = height;
+ free(pData);
+ return BadValue;
+ }
+
if (width != pScreen->width || height != pScreen->height)
{
int c;