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:
parent
034e792662
commit
a6574033f4
|
@ -663,14 +663,14 @@ XkbVirtualModsToReal(XkbDescPtr xkb, unsigned virtual_mask, unsigned *mask_rtrn)
|
||||||
register int i, bit;
|
register int i, bit;
|
||||||
register unsigned mask;
|
register unsigned mask;
|
||||||
|
|
||||||
if (xkb == NULL)
|
if ((xkb == NULL) || (xkb->server == NULL)) {
|
||||||
|
*mask_rtrn = 0;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
if (virtual_mask == 0) {
|
if (virtual_mask == 0) {
|
||||||
*mask_rtrn = 0;
|
*mask_rtrn = 0;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
if (xkb->server == NULL)
|
|
||||||
return FALSE;
|
|
||||||
for (i = mask = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) {
|
for (i = mask = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) {
|
||||||
if (virtual_mask & bit)
|
if (virtual_mask & bit)
|
||||||
mask |= xkb->server->vmods[i];
|
mask |= xkb->server->vmods[i];
|
||||||
|
|
Loading…
Reference in New Issue