glx: fix memory corruption with r5g6b5

should cherry-pick to xserver-1.5
This commit is contained in:
George Sapountzis 2008-05-23 22:39:35 +03:00
parent 21a8052fdc
commit 6c72961d8f

View File

@ -420,10 +420,13 @@ findFirstSet(unsigned int v)
static void static void
initGlxVisual(VisualPtr visual, __GLXconfig *config) initGlxVisual(VisualPtr visual, __GLXconfig *config)
{ {
int maxBits;
maxBits = max(config->redBits, max(config->greenBits, config->blueBits));
config->visualID = visual->vid; config->visualID = visual->vid;
visual->class = glxConvertToXVisualType(config->visualType); visual->class = glxConvertToXVisualType(config->visualType);
visual->bitsPerRGBValue = config->redBits; visual->bitsPerRGBValue = maxBits;
visual->ColormapEntries = 1 << config->redBits; visual->ColormapEntries = 1 << maxBits;
visual->nplanes = config->redBits + config->greenBits + config->blueBits; visual->nplanes = config->redBits + config->greenBits + config->blueBits;
visual->redMask = config->redMask; visual->redMask = config->redMask;