Return Success from generate_modkeymap() when max_keys_per_mod is zero
max_keys_per_mod equal to zero is a valid situation so generate_modkeymap should not return BadAlloc in this case. Signed-off-by: Adam Tkac <atkac@redhat.com> Reviewed-by: Patrick E. Kane <pekane52 at gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
4a12aecac6
commit
05e616767e
|
@ -286,7 +286,7 @@ int generate_modkeymap(ClientPtr client, DeviceIntPtr dev,
|
||||||
{
|
{
|
||||||
CARD8 keys_per_mod[8];
|
CARD8 keys_per_mod[8];
|
||||||
int max_keys_per_mod;
|
int max_keys_per_mod;
|
||||||
KeyCode *modkeymap;
|
KeyCode *modkeymap = NULL;
|
||||||
int i, j, ret;
|
int i, j, ret;
|
||||||
|
|
||||||
ret = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixGetAttrAccess);
|
ret = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixGetAttrAccess);
|
||||||
|
@ -310,6 +310,7 @@ int generate_modkeymap(ClientPtr client, DeviceIntPtr dev,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (max_keys_per_mod != 0) {
|
||||||
modkeymap = calloc(max_keys_per_mod * 8, sizeof(KeyCode));
|
modkeymap = calloc(max_keys_per_mod * 8, sizeof(KeyCode));
|
||||||
if (!modkeymap)
|
if (!modkeymap)
|
||||||
return BadAlloc;
|
return BadAlloc;
|
||||||
|
@ -325,6 +326,7 @@ int generate_modkeymap(ClientPtr client, DeviceIntPtr dev,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*max_keys_per_mod_out = max_keys_per_mod;
|
*max_keys_per_mod_out = max_keys_per_mod;
|
||||||
*modkeymap_out = modkeymap;
|
*modkeymap_out = modkeymap;
|
||||||
|
|
Loading…
Reference in New Issue