From fccc98645b08697a7c7b09a197f5ed9ce7ab7850 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 6 May 2025 14:41:27 +0200 Subject: [PATCH] =?UTF-8?q?mi:=20NULL-protection=20in=20=E2=80=98miInitVis?= =?UTF-8?q?uals()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NULL-Protect just against 'vid' might remain NULL. | ../mi/micmap.c: In function ‘miInitVisuals’: | ../mi/micmap.c:505:32: warning: dereference of NULL ‘vid’ [CWE-476] [-Wanalyzer-null-dereference] | 505 | visual->vid = *vid = FakeClientID(0); | | ~~~~~^~~~~~~~~~~~~~~~~ Signed-off-by: Enrico Weigelt, metux IT consult --- mi/micmap.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mi/micmap.c b/mi/micmap.c index e8b3ad568..055a2f910 100644 --- a/mi/micmap.c +++ b/mi/micmap.c @@ -34,6 +34,7 @@ #include "dix/colormap_priv.h" #include "mi/mi_priv.h" +#include "os/bug_priv.h" #include "os/osdep.h" #include "scrnintstr.h" @@ -504,7 +505,12 @@ miInitVisuals(VisualPtr * visualp, DepthPtr * depthp, int *nvisualp, visual->bitsPerRGBValue = visuals->bitsPerRGB; visual->ColormapEntries = 1 << d; visual->nplanes = d; - visual->vid = *vid = FakeClientID(0); + visual->vid = FakeClientID(0); + if (vid) + *vid = visual->vid; + else + BUG_WARN(vid == 0); + switch (visual->class) { case PseudoColor: case GrayScale: