Fix a bunch of mistakes detected with scan-build

This commit is contained in:
emersion 2017-11-16 10:30:54 +01:00
parent ac78c6642a
commit bb79ada49f
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
10 changed files with 19 additions and 9 deletions

View file

@ -66,10 +66,11 @@ static void handle_device_added(struct wlr_libinput_backend *backend,
int product = libinput_device_get_id_product(libinput_dev); int product = libinput_device_get_id_product(libinput_dev);
const char *name = libinput_device_get_name(libinput_dev); const char *name = libinput_device_get_name(libinput_dev);
struct wl_list *wlr_devices = calloc(1, sizeof(struct wl_list)); struct wl_list *wlr_devices = calloc(1, sizeof(struct wl_list));
wl_list_init(wlr_devices);
if (!wlr_devices) { if (!wlr_devices) {
goto fail; wlr_log(L_ERROR, "Allocation failed");
return;
} }
wl_list_init(wlr_devices);
wlr_log(L_DEBUG, "Added %s [%d:%d]", name, vendor, product); wlr_log(L_DEBUG, "Added %s [%d:%d]", name, vendor, product);
if (libinput_device_has_capability(libinput_dev, LIBINPUT_DEVICE_CAP_KEYBOARD)) { if (libinput_device_has_capability(libinput_dev, LIBINPUT_DEVICE_CAP_KEYBOARD)) {

View file

@ -249,7 +249,7 @@ static size_t explicit_find_gpus(struct wlr_session *session,
} }
} while ((ptr = strtok_r(NULL, ":", &save))); } while ((ptr = strtok_r(NULL, ":", &save)));
free(ptr); free(gpus);
return i; return i;
} }

View file

@ -405,7 +405,7 @@ void roots_config_destroy(struct roots_config *config) {
} }
struct roots_keyboard_config *kc, *ktmp = NULL; struct roots_keyboard_config *kc, *ktmp = NULL;
wl_list_for_each_safe(kc, ktmp, &config->bindings, link) { wl_list_for_each_safe(kc, ktmp, &config->keyboards, link) {
free(kc->name); free(kc->name);
free(kc->rules); free(kc->rules);
free(kc->model); free(kc->model);

View file

@ -18,9 +18,9 @@ struct roots_cursor *roots_cursor_create(struct roots_seat *seat) {
} }
cursor->cursor = wlr_cursor_create(); cursor->cursor = wlr_cursor_create();
if (!cursor->cursor) { if (!cursor->cursor) {
free(cursor);
return NULL; return NULL;
} }
return cursor; return cursor;
} }

View file

@ -141,6 +141,7 @@ static bool keyboard_keysyms_xkb(struct roots_keyboard *keyboard,
uint32_t consumed = xkb_state_key_get_consumed_mods2( uint32_t consumed = xkb_state_key_get_consumed_mods2(
keyboard->device->keyboard->xkb_state, keycode, XKB_CONSUMED_MODE_XKB); keyboard->device->keyboard->xkb_state, keycode, XKB_CONSUMED_MODE_XKB);
// TODO: actually use this value
modifiers = modifiers & ~consumed; modifiers = modifiers & ~consumed;
bool handled = false; bool handled = false;

View file

@ -252,7 +252,6 @@ struct roots_seat *roots_seat_create(struct roots_input *input, char *name) {
seat->seat = wlr_seat_create(input->server->wl_display, name); seat->seat = wlr_seat_create(input->server->wl_display, name);
if (!seat->seat) { if (!seat->seat) {
free(seat); free(seat);
roots_cursor_destroy(seat->cursor);
return NULL; return NULL;
} }

View file

@ -636,7 +636,10 @@ static void data_device_start_drag(struct wl_client *client,
if (!seat_client_start_drag(seat_client, source, icon)) { if (!seat_client_start_drag(seat_client, source, icon)) {
wl_resource_post_no_memory(device_resource); wl_resource_post_no_memory(device_resource);
} else { return;
}
if (source) {
source->seat_client = seat_client; source->seat_client = seat_client;
} }
} }

View file

@ -105,7 +105,10 @@ void wlr_keyboard_init(struct wlr_keyboard *kb,
} }
void wlr_keyboard_destroy(struct wlr_keyboard *kb) { void wlr_keyboard_destroy(struct wlr_keyboard *kb) {
if (kb && kb->impl && kb->impl->destroy) { if (kb == NULL) {
return;
}
if (kb->impl && kb->impl->destroy) {
kb->impl->destroy(kb); kb->impl->destroy(kb);
} else { } else {
wl_list_remove(&kb->events.key.listener_list); wl_list_remove(&kb->events.key.listener_list);

View file

@ -85,6 +85,7 @@ static void screenshooter_shoot(struct wl_client *client,
struct wlr_screenshot *screenshot = struct wlr_screenshot *screenshot =
calloc(1, sizeof(struct wlr_screenshot)); calloc(1, sizeof(struct wlr_screenshot));
if (!screenshot) { if (!screenshot) {
free(pixels);
wl_resource_post_no_memory(screenshooter_resource); wl_resource_post_no_memory(screenshooter_resource);
return; return;
} }
@ -96,6 +97,7 @@ static void screenshooter_shoot(struct wl_client *client,
wl_resource_get_version(screenshooter_resource), id); wl_resource_get_version(screenshooter_resource), id);
if (screenshot->resource == NULL) { if (screenshot->resource == NULL) {
free(screenshot); free(screenshot);
free(pixels);
wl_resource_post_no_memory(screenshooter_resource); wl_resource_post_no_memory(screenshooter_resource);
return; return;
} }
@ -109,6 +111,7 @@ static void screenshooter_shoot(struct wl_client *client,
if (!state) { if (!state) {
wl_resource_destroy(screenshot->resource); wl_resource_destroy(screenshot->resource);
free(screenshot); free(screenshot);
free(pixels);
wl_resource_post_no_memory(screenshooter_resource); wl_resource_post_no_memory(screenshooter_resource);
return; return;
} }

View file

@ -347,7 +347,7 @@ static void shell_surface_protocol_set_popup(struct wl_client *client,
transient_state->flags = flags; transient_state->flags = flags;
struct wlr_wl_shell_surface_popup_state *popup_state = struct wlr_wl_shell_surface_popup_state *popup_state =
calloc(1, sizeof(struct wlr_wl_shell_surface_transient_state)); calloc(1, sizeof(struct wlr_wl_shell_surface_popup_state));
if (popup_state == NULL) { if (popup_state == NULL) {
free(transient_state); free(transient_state);
wl_client_post_no_memory(client); wl_client_post_no_memory(client);