headless add_input_device: fix leak on error
Found through static analysis
This commit is contained in:
parent
1fef1f88b2
commit
0c2a64df18
|
@ -39,7 +39,7 @@ struct wlr_input_device *wlr_headless_add_input_device(
|
||||||
wlr_device->keyboard = calloc(1, sizeof(struct wlr_keyboard));
|
wlr_device->keyboard = calloc(1, sizeof(struct wlr_keyboard));
|
||||||
if (wlr_device->keyboard == NULL) {
|
if (wlr_device->keyboard == NULL) {
|
||||||
wlr_log(L_ERROR, "Unable to allocate wlr_keyboard");
|
wlr_log(L_ERROR, "Unable to allocate wlr_keyboard");
|
||||||
return NULL;
|
goto error;
|
||||||
}
|
}
|
||||||
wlr_keyboard_init(wlr_device->keyboard, NULL);
|
wlr_keyboard_init(wlr_device->keyboard, NULL);
|
||||||
break;
|
break;
|
||||||
|
@ -47,7 +47,7 @@ struct wlr_input_device *wlr_headless_add_input_device(
|
||||||
wlr_device->pointer = calloc(1, sizeof(struct wlr_pointer));
|
wlr_device->pointer = calloc(1, sizeof(struct wlr_pointer));
|
||||||
if (wlr_device->pointer == NULL) {
|
if (wlr_device->pointer == NULL) {
|
||||||
wlr_log(L_ERROR, "Unable to allocate wlr_pointer");
|
wlr_log(L_ERROR, "Unable to allocate wlr_pointer");
|
||||||
return NULL;
|
goto error;
|
||||||
}
|
}
|
||||||
wlr_pointer_init(wlr_device->pointer, NULL);
|
wlr_pointer_init(wlr_device->pointer, NULL);
|
||||||
break;
|
break;
|
||||||
|
@ -55,7 +55,7 @@ struct wlr_input_device *wlr_headless_add_input_device(
|
||||||
wlr_device->touch = calloc(1, sizeof(struct wlr_touch));
|
wlr_device->touch = calloc(1, sizeof(struct wlr_touch));
|
||||||
if (wlr_device->touch == NULL) {
|
if (wlr_device->touch == NULL) {
|
||||||
wlr_log(L_ERROR, "Unable to allocate wlr_touch");
|
wlr_log(L_ERROR, "Unable to allocate wlr_touch");
|
||||||
return NULL;
|
goto error;
|
||||||
}
|
}
|
||||||
wlr_touch_init(wlr_device->touch, NULL);
|
wlr_touch_init(wlr_device->touch, NULL);
|
||||||
break;
|
break;
|
||||||
|
@ -63,7 +63,7 @@ struct wlr_input_device *wlr_headless_add_input_device(
|
||||||
wlr_device->tablet_tool = calloc(1, sizeof(struct wlr_tablet_tool));
|
wlr_device->tablet_tool = calloc(1, sizeof(struct wlr_tablet_tool));
|
||||||
if (wlr_device->tablet_tool == NULL) {
|
if (wlr_device->tablet_tool == NULL) {
|
||||||
wlr_log(L_ERROR, "Unable to allocate wlr_tablet_tool");
|
wlr_log(L_ERROR, "Unable to allocate wlr_tablet_tool");
|
||||||
return NULL;
|
goto error;
|
||||||
}
|
}
|
||||||
wlr_tablet_tool_init(wlr_device->tablet_tool, NULL);
|
wlr_tablet_tool_init(wlr_device->tablet_tool, NULL);
|
||||||
break;
|
break;
|
||||||
|
@ -71,7 +71,7 @@ struct wlr_input_device *wlr_headless_add_input_device(
|
||||||
wlr_device->tablet_pad = calloc(1, sizeof(struct wlr_tablet_pad));
|
wlr_device->tablet_pad = calloc(1, sizeof(struct wlr_tablet_pad));
|
||||||
if (wlr_device->tablet_pad == NULL) {
|
if (wlr_device->tablet_pad == NULL) {
|
||||||
wlr_log(L_ERROR, "Unable to allocate wlr_tablet_pad");
|
wlr_log(L_ERROR, "Unable to allocate wlr_tablet_pad");
|
||||||
return NULL;
|
goto error;
|
||||||
}
|
}
|
||||||
wlr_tablet_pad_init(wlr_device->tablet_pad, NULL);
|
wlr_tablet_pad_init(wlr_device->tablet_pad, NULL);
|
||||||
break;
|
break;
|
||||||
|
@ -84,4 +84,7 @@ struct wlr_input_device *wlr_headless_add_input_device(
|
||||||
}
|
}
|
||||||
|
|
||||||
return wlr_device;
|
return wlr_device;
|
||||||
|
error:
|
||||||
|
free(device);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue