]> git.pld-linux.org Git - packages/tigervnc.git/blame - tigervnc-rh611677-generate_modkeymap-max_keys.patch
- rel 5
[packages/tigervnc.git] / tigervnc-rh611677-generate_modkeymap-max_keys.patch
CommitLineData
13a33bd9
JR
1From 3fae47581a47613f1117b8794ae37b75ace73f3e Mon Sep 17 00:00:00 2001
2From: Adam Tkac <atkac@redhat.com>
3Date: Tue, 24 Aug 2010 17:21:30 +0200
4Subject: [PATCH] Return Success from generate_modkeymap() when max_keys_per_mod is zero.
5
6max_keys_per_mod equal to zero is a valid situation so generate_modkeymap
7should not return BadAlloc in this case.
8
9Signed-off-by: Adam Tkac <atkac@redhat.com>
10---
11 dix/inpututils.c | 24 +++++++++++++-----------
12 1 files changed, 13 insertions(+), 11 deletions(-)
13
14diff --git a/dix/inpututils.c b/dix/inpututils.c
15index 8ec80b5..6693c67 100644
16--- a/dix/inpututils.c
17+++ b/dix/inpututils.c
18@@ -286,7 +286,7 @@ int generate_modkeymap(ClientPtr client, DeviceIntPtr dev,
19 {
20 CARD8 keys_per_mod[8];
21 int max_keys_per_mod;
22- KeyCode *modkeymap;
23+ KeyCode *modkeymap = NULL;
24 int i, j, ret;
25
26 ret = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixGetAttrAccess);
27@@ -310,18 +310,20 @@ int generate_modkeymap(ClientPtr client, DeviceIntPtr dev,
28 }
29 }
30
31- modkeymap = calloc(max_keys_per_mod * 8, sizeof(KeyCode));
32- if (!modkeymap)
33- return BadAlloc;
34+ if (max_keys_per_mod != 0) {
35+ modkeymap = calloc(max_keys_per_mod * 8, sizeof(KeyCode));
36+ if (!modkeymap)
37+ return BadAlloc;
38
39- for (i = 0; i < 8; i++)
40- keys_per_mod[i] = 0;
41+ for (i = 0; i < 8; i++)
42+ keys_per_mod[i] = 0;
43
44- for (i = 8; i < MAP_LENGTH; i++) {
45- for (j = 0; j < 8; j++) {
46- if (dev->key->xkbInfo->desc->map->modmap[i] & (1 << j)) {
47- modkeymap[(j * max_keys_per_mod) + keys_per_mod[j]] = i;
48- keys_per_mod[j]++;
49+ for (i = 8; i < MAP_LENGTH; i++) {
50+ for (j = 0; j < 8; j++) {
51+ if (dev->key->xkbInfo->desc->map->modmap[i] & (1 << j)) {
52+ modkeymap[(j * max_keys_per_mod) + keys_per_mod[j]] = i;
53+ keys_per_mod[j]++;
54+ }
55 }
56 }
57 }
58--
591.7.2.2
60
This page took 0.468396 seconds and 4 git commands to generate.