diff options
author | Julien Cristau <jcristau@debian.org> | 2009-05-22 09:54:38 +0200 |
---|---|---|
committer | Julien Cristau <jcristau@debian.org> | 2009-05-24 11:13:47 +0200 |
commit | 12e725d08b4cf7dbb7f09b9ec09fa1b621156ea9 (patch) | |
tree | 358d47f0c6fb1b86a914721cd4c0d3740ecd37ea | |
parent | c70511931ca1441878daed50e710fa514f6ab077 (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>
-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 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) { |