summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Cristau <jcristau@debian.org>2009-05-22 09:54:38 +0200
committerKeith Packard <keithp@keithp.com>2009-07-26 13:56:57 -0700
commitb1eed8970f7c5b07152dbc6b7dcc4c8504aeb67c (patch)
tree889136c47346aa7b720fa698f9b59a51eb1ca417
parent1addf6fe235f8537024140aff56dffb4738701a7 (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> (cherry picked from commit 12e725d08b4cf7dbb7f09b9ec09fa1b621156ea9) Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--randr/rrscreen.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index dd645a936..e7eb75cc2 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)
{