summaryrefslogtreecommitdiff
path: root/randr
diff options
context:
space:
mode:
authorJulien Cristau <jcristau@debian.org>2009-05-22 09:54:38 +0200
committerJulien Cristau <jcristau@debian.org>2009-05-24 11:13:47 +0200
commit12e725d08b4cf7dbb7f09b9ec09fa1b621156ea9 (patch)
tree358d47f0c6fb1b86a914721cd4c0d3740ecd37ea /randr
parentc70511931ca1441878daed50e710fa514f6ab077 (diff)
randr: fix server crash in RRGetScreenInfo
We don't return rates to randr < 1.1 clients, so don't allocate space for them. This fixes a FatalError due to not all allocated space being used. X.Org bug#21861 <http://bugs.freedesktop.org/show_bug.cgi?id=21861> Reported-by: Guillaume Quintin <coincoin169g@gmail.com> Signed-off-by: Julien Cristau <jcristau@debian.org>
Diffstat (limited to 'randr')
-rw-r--r--randr/rrscreen.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index 94bf3ce99..46890bf74 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -664,8 +664,9 @@ ProcRRGetScreenInfo (ClientPtr client)
rep.sizeID = pData->size;
rep.rate = pData->refresh;
- extraLen = (rep.nSizes * sizeof (xScreenSizes) +
- rep.nrateEnts * sizeof (CARD16));
+ extraLen = rep.nSizes * sizeof (xScreenSizes);
+ if (has_rate)
+ extraLen += rep.nrateEnts * sizeof (CARD16);
if (extraLen)
{