summaryrefslogtreecommitdiff
authorJulien Cristau <jcristau@debian.org>2009-05-22 07:54:38 (GMT)
committer Julien Cristau <jcristau@debian.org>2009-05-24 09:13:47 (GMT)
commit12e725d08b4cf7dbb7f09b9ec09fa1b621156ea9 (patch) (side-by-side diff)
tree358d47f0c6fb1b86a914721cd4c0d3740ecd37ea
parentc70511931ca1441878daed50e710fa514f6ab077 (diff)
downloadxserver-12e725d08b4cf7dbb7f09b9ec09fa1b621156ea9.zip
xserver-12e725d08b4cf7dbb7f09b9ec09fa1b621156ea9.tar.gz
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 (more/less context) (ignore whitespace changes)
-rw-r--r--randr/rrscreen.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index 94bf3ce..46890bf 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)
{