aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Crisci <tony@dubstepdish.com>2017-11-09 18:32:54 -0500
committerTony Crisci <tony@dubstepdish.com>2017-11-09 18:32:54 -0500
commit1472dbda74dea5387a4d0e531b641734131dc705 (patch)
treec58c9930774e85eb8b40a46b8a7e96ef66911f66
parentd6513cef5dc3f2c20e1bf11ff6a468b60ce35aca (diff)
rootston: roots_keyboard null check
-rw-r--r--rootston/keyboard.c4
-rw-r--r--rootston/seat.c5
2 files changed, 9 insertions, 0 deletions
diff --git a/rootston/keyboard.c b/rootston/keyboard.c
index 72567eef..bb748550 100644
--- a/rootston/keyboard.c
+++ b/rootston/keyboard.c
@@ -249,6 +249,10 @@ struct roots_keyboard *roots_keyboard_create(struct wlr_input_device *device,
keyboard->input = input;
struct keyboard_config *config = calloc(1, sizeof(struct keyboard_config));
+ if (config == NULL) {
+ free(keyboard);
+ return NULL;
+ }
keyboard_config_merge(config, config_get_keyboard(input->config, device));
keyboard_config_merge(config, config_get_keyboard(input->config, NULL));
diff --git a/rootston/seat.c b/rootston/seat.c
index 97d5c7e4..72e94aec 100644
--- a/rootston/seat.c
+++ b/rootston/seat.c
@@ -306,6 +306,11 @@ void roots_seat_destroy(struct roots_seat *seat) {
static void seat_add_keyboard(struct roots_seat *seat, struct wlr_input_device *device) {
assert(device->type == WLR_INPUT_DEVICE_KEYBOARD);
struct roots_keyboard *keyboard = roots_keyboard_create(device, seat->input);
+ if (keyboard == NULL) {
+ wlr_log(L_ERROR, "could not allocate keyboard for seat");
+ return;
+ }
+
keyboard->seat = seat;
wl_list_insert(&seat->keyboards, &keyboard->link);