Xvfb: handle allocation failure in vfbInstallColormap()

Reported in #1817:

xwayland-24.1.6/redhat-linux-build/../hw/vfb/InitOutput.c:416:13:
 warning[-Wanalyzer-possible-null-dereference]:
  dereference of possibly-NULL ‘ppix’

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
This commit is contained in:
Alan Coopersmith 2026-03-29 13:52:05 -07:00
parent 16ca2c7a11
commit f8dc6361fa

View file

@ -480,20 +480,21 @@ vfbInstallColormap(ColormapPtr pmap)
prgb = xallocarray(entries, sizeof(xrgb));
defs = xallocarray(entries, sizeof(xColorItem));
for (i = 0; i < entries; i++)
ppix[i] = i;
/* XXX truecolor */
QueryColors(pmap, entries, ppix, prgb, serverClient);
if (ppix && prgb && defs) {
for (i = 0; i < entries; i++)
ppix[i] = i;
/* XXX truecolor */
QueryColors(pmap, entries, ppix, prgb, serverClient);
for (i = 0; i < entries; i++) { /* convert xrgbs to xColorItems */
defs[i].pixel = ppix[i] & 0xff; /* change pixel to index */
defs[i].red = prgb[i].red;
defs[i].green = prgb[i].green;
defs[i].blue = prgb[i].blue;
defs[i].flags = DoRed | DoGreen | DoBlue;
for (i = 0; i < entries; i++) { /* convert xrgbs to xColorItems */
defs[i].pixel = ppix[i] & 0xff; /* change pixel to index */
defs[i].red = prgb[i].red;
defs[i].green = prgb[i].green;
defs[i].blue = prgb[i].blue;
defs[i].flags = DoRed | DoGreen | DoBlue;
}
(*pmap->pScreen->StoreColors) (pmap, entries, defs);
}
(*pmap->pScreen->StoreColors) (pmap, entries, defs);
free(ppix);
free(prgb);
free(defs);