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 <alan.coopersmith@oracle.com>
This commit is contained in:
Alan Coopersmith 2020-11-01 15:45:08 -08:00
parent 034e792662
commit a6574033f4
1 changed files with 3 additions and 3 deletions

View File

@ -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];