keyrouter: fix svace issues 49/211049/2
authorjeon <jhyuni.kang@samsung.com>
Mon, 29 Jul 2019 09:31:32 +0000 (18:31 +0900)
committerjeon <jhyuni.kang@samsung.com>
Mon, 29 Jul 2019 11:23:41 +0000 (20:23 +0900)
  - add a null check
  - close a opened file
  - check a tainted value

Change-Id: I7cabe3c25784d140ad75ac81806071559b658cdf

src/lib/keyrouter/pepper-keyrouter.c

index ea8acea..516e135 100644 (file)
@@ -234,6 +234,7 @@ _pepper_keyrouter_key_send(pepper_keyrouter_t *pepper_keyrouter,
        pepper_keyboard_t *keyboard_info;
 
        keyboard_info = pepper_seat_get_keyboard(seat);
+       PEPPER_CHECK(keyboard_info, return, "Current seat has no keyboard\n");
 
        wl_resource_for_each(resource, pepper_keyboard_get_resource_list(keyboard_info)) {
                if (wl_resource_get_client(resource) == client)
@@ -688,7 +689,8 @@ _pepper_keyrouter_options_set(pepper_keyrouter_t *pepper_keyrouter)
                tmp = strtok_r(NULL, " ", &buf_ptr);
                if (!tmp) continue;
                keycode = atoi(tmp);
-               PEPPER_CHECK(keycode < KEYROUTER_MAX_KEYS, continue, "Currently %d key is too big to support\n", keycode);
+               PEPPER_CHECK(((0 < keycode) && (keycode < KEYROUTER_MAX_KEYS)),
+                       continue, "Currently %d key is invalid to support\n", keycode);
 
                pepper_keyrouter->opts[keycode].enabled = PEPPER_TRUE;
 
@@ -696,6 +698,7 @@ _pepper_keyrouter_options_set(pepper_keyrouter_t *pepper_keyrouter)
                        pepper_keyrouter->opts[keycode].no_privilege = PEPPER_TRUE;
                }
     }
+    fclose(file);
 
     return;