From a6574033f464c7cde02bce8f1b130ff6b2b2d9eb Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Sun, 1 Nov 2020 15:45:08 -0800 Subject: [PATCH] xkb: always set *mask_rtrn in XkbVirtualModsToReal Resolves warning from Oracle Parfait static analyser: Error: Uninitialised memory Uninitialised memory variable [uninitialised-mem-var] (CWE 457): Possible access to uninitialised memory referenced by variable 'mask' at line 721 of xkb/XKBMisc.c in function 'XkbUpdateKeyTypeVirtualMods'. Path in callee avoiding write at line 720 mask allocated at line 718 Signed-off-by: Alan Coopersmith --- xkb/XKBMisc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xkb/XKBMisc.c b/xkb/XKBMisc.c index f17194528..2bad695e0 100644 --- a/xkb/XKBMisc.c +++ b/xkb/XKBMisc.c @@ -663,14 +663,14 @@ XkbVirtualModsToReal(XkbDescPtr xkb, unsigned virtual_mask, unsigned *mask_rtrn) register int i, bit; register unsigned mask; - if (xkb == NULL) + if ((xkb == NULL) || (xkb->server == NULL)) { + *mask_rtrn = 0; return FALSE; + } if (virtual_mask == 0) { *mask_rtrn = 0; return TRUE; } - if (xkb->server == NULL) - return FALSE; for (i = mask = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) { if (virtual_mask & bit) mask |= xkb->server->vmods[i];