diff options
author | Julien Cristau <jcristau@debian.org> | 2009-05-22 09:54:38 +0200 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2009-07-26 13:56:57 -0700 |
commit | b1eed8970f7c5b07152dbc6b7dcc4c8504aeb67c (patch) | |
tree | 889136c47346aa7b720fa698f9b59a51eb1ca417 | |
parent | 1addf6fe235f8537024140aff56dffb4738701a7 (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.c | 5 |
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) { |