tinyds-tdm: returns early to prevent null dereference 15/279815/1
authorduna.oh <duna.oh@samsung.com>
Fri, 12 Aug 2022 08:46:36 +0000 (17:46 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 18 Aug 2022 06:12:45 +0000 (15:12 +0900)
Change-Id: I691bed00f777f74b2c504d9fa8a41749b48e3e3b

examples/tinyds-tdm.c

index 9a82f65..2fb1f0e 100644 (file)
@@ -1404,12 +1404,16 @@ server_add_keyboard(struct tinyds_server *server, struct ds_input_device *dev)
     kbd->server = server;
 
     context = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
+    if (!context)
+        goto err;
+
     keymap = xkb_keymap_new_from_names(context, NULL,
             XKB_KEYMAP_COMPILE_NO_FLAGS);
 
     if (!keymap) {
         ds_err("Failed to compile keymap");
         xkb_context_unref(context);
+        goto err;
     }
 
     ds_keyboard_set_keymap(ds_input_device_get_keyboard(dev), keymap);
@@ -1426,6 +1430,11 @@ server_add_keyboard(struct tinyds_server *server, struct ds_input_device *dev)
     wl_list_insert(&server->keyboards, &kbd->link);
 
     ds_inf("Keyboard(%p) added", kbd);
+
+    return;
+
+err:
+    free(kbd);
 }
 
 static struct tinyds_view *