mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-02-03 21:40:40 +01:00
Abort if zalloc ever fails
There's no guarantee that libinput does the right thing if memory allocation fails and it's such a niche case on the systems we're targeting that it just doesn't matter. Simply abort if zalloc ever fails. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
26225f11df
commit
d5d6d4cd53
15 changed files with 19 additions and 117 deletions
|
|
@ -297,11 +297,9 @@ struct evdev_dispatch_interface lid_switch_interface = {
|
|||
struct evdev_dispatch *
|
||||
evdev_lid_switch_dispatch_create(struct evdev_device *lid_device)
|
||||
{
|
||||
struct lid_switch_dispatch *dispatch = zalloc(sizeof *dispatch);
|
||||
|
||||
if (dispatch == NULL)
|
||||
return NULL;
|
||||
struct lid_switch_dispatch *dispatch;
|
||||
|
||||
dispatch = zalloc(sizeof *dispatch);
|
||||
dispatch->base.dispatch_type = DISPATCH_LID_SWITCH;
|
||||
dispatch->base.interface = &lid_switch_interface;
|
||||
dispatch->device = lid_device;
|
||||
|
|
|
|||
|
|
@ -2797,8 +2797,6 @@ evdev_mt_touchpad_create(struct evdev_device *device)
|
|||
evdev_tag_touchpad(device, device->udev_device);
|
||||
|
||||
tp = zalloc(sizeof *tp);
|
||||
if (!tp)
|
||||
return NULL;
|
||||
|
||||
if (!tp_init(tp, device)) {
|
||||
tp_interface_destroy(&tp->base);
|
||||
|
|
|
|||
|
|
@ -59,9 +59,6 @@ pad_mode_toggle_button_new(struct pad_dispatch *pad,
|
|||
struct pad_mode_toggle_button *button;
|
||||
|
||||
button = zalloc(sizeof *button);
|
||||
if (!button)
|
||||
return NULL;
|
||||
|
||||
button->button_index = button_index;
|
||||
|
||||
return button;
|
||||
|
|
@ -121,9 +118,6 @@ pad_led_new(struct libinput *libinput, const char *prefix, int group, int mode)
|
|||
int rc, fd;
|
||||
|
||||
led = zalloc(sizeof *led);
|
||||
if (!led)
|
||||
return NULL;
|
||||
|
||||
led->brightness_fd = -1;
|
||||
led->mode_idx = mode;
|
||||
list_init(&led->link);
|
||||
|
|
@ -178,9 +172,6 @@ pad_group_new_basic(struct pad_dispatch *pad,
|
|||
struct pad_led_group *group;
|
||||
|
||||
group = zalloc(sizeof *group);
|
||||
if (!group)
|
||||
return NULL;
|
||||
|
||||
group->base.device = &pad->device->base;
|
||||
group->base.refcount = 1;
|
||||
group->base.index = group_index;
|
||||
|
|
|
|||
|
|
@ -628,8 +628,6 @@ evdev_tablet_pad_create(struct evdev_device *device)
|
|||
struct pad_dispatch *pad;
|
||||
|
||||
pad = zalloc(sizeof *pad);
|
||||
if (!pad)
|
||||
return NULL;
|
||||
|
||||
if (pad_init(pad, device) != 0) {
|
||||
pad_destroy(&pad->base);
|
||||
|
|
|
|||
|
|
@ -1035,8 +1035,7 @@ tablet_get_tool(struct tablet_dispatch *tablet,
|
|||
const struct input_absinfo *pressure;
|
||||
|
||||
tool = zalloc(sizeof *tool);
|
||||
if (!tool)
|
||||
return NULL;
|
||||
|
||||
*tool = (struct libinput_tablet_tool) {
|
||||
.type = type,
|
||||
.serial = serial,
|
||||
|
|
@ -1932,8 +1931,6 @@ evdev_tablet_create(struct evdev_device *device)
|
|||
struct tablet_dispatch *tablet;
|
||||
|
||||
tablet = zalloc(sizeof *tablet);
|
||||
if (!tablet)
|
||||
return NULL;
|
||||
|
||||
if (tablet_init(tablet, device) != 0) {
|
||||
tablet_destroy(&tablet->base);
|
||||
|
|
|
|||
|
|
@ -1837,12 +1837,10 @@ fallback_dispatch_init_abs(struct fallback_dispatch *dispatch,
|
|||
static struct evdev_dispatch *
|
||||
fallback_dispatch_create(struct libinput_device *libinput_device)
|
||||
{
|
||||
struct fallback_dispatch *dispatch = zalloc(sizeof *dispatch);
|
||||
struct evdev_device *device = evdev_device(libinput_device);
|
||||
struct fallback_dispatch *dispatch;
|
||||
|
||||
if (dispatch == NULL)
|
||||
return NULL;
|
||||
|
||||
dispatch = zalloc(sizeof *dispatch);
|
||||
dispatch->base.dispatch_type = DISPATCH_FALLBACK;
|
||||
dispatch->base.interface = &fallback_interface;
|
||||
dispatch->pending_event = EVDEV_NONE;
|
||||
|
|
@ -2936,8 +2934,6 @@ evdev_device_create(struct libinput_seat *seat,
|
|||
goto err;
|
||||
|
||||
device = zalloc(sizeof *device);
|
||||
if (device == NULL)
|
||||
goto err;
|
||||
|
||||
libinput_device_init(&device->base, seat);
|
||||
libinput_seat_ref(seat);
|
||||
|
|
|
|||
12
src/filter.c
12
src/filter.c
|
|
@ -951,9 +951,6 @@ create_default_filter(int dpi)
|
|||
struct pointer_accelerator *filter;
|
||||
|
||||
filter = zalloc(sizeof *filter);
|
||||
if (filter == NULL)
|
||||
return NULL;
|
||||
|
||||
filter->last_velocity = 0.0;
|
||||
|
||||
filter->trackers =
|
||||
|
|
@ -1050,9 +1047,6 @@ create_pointer_accelerator_filter_lenovo_x230(int dpi)
|
|||
struct pointer_accelerator *filter;
|
||||
|
||||
filter = zalloc(sizeof *filter);
|
||||
if (filter == NULL)
|
||||
return NULL;
|
||||
|
||||
filter->base.interface = &accelerator_interface_x230;
|
||||
filter->profile = touchpad_lenovo_x230_accel_profile;
|
||||
filter->last_velocity = 0.0;
|
||||
|
|
@ -1160,9 +1154,6 @@ create_pointer_accelerator_filter_flat(int dpi)
|
|||
struct pointer_accelerator_flat *filter;
|
||||
|
||||
filter = zalloc(sizeof *filter);
|
||||
if (filter == NULL)
|
||||
return NULL;
|
||||
|
||||
filter->base.interface = &accelerator_interface_flat;
|
||||
filter->dpi = dpi;
|
||||
|
||||
|
|
@ -1284,9 +1275,6 @@ create_tablet_filter_flat(int xres, int yres)
|
|||
struct tablet_accelerator_flat *filter;
|
||||
|
||||
filter = zalloc(sizeof *filter);
|
||||
if (filter == NULL)
|
||||
return NULL;
|
||||
|
||||
filter->factor = 1.0;
|
||||
filter->xres = xres;
|
||||
filter->yres = yres;
|
||||
|
|
|
|||
|
|
@ -494,8 +494,6 @@ strv_from_string(const char *in, const char *separators)
|
|||
|
||||
nelems++; /* NULL-terminated */
|
||||
strv = zalloc(nelems * sizeof *strv);
|
||||
if (!strv)
|
||||
return NULL;
|
||||
|
||||
idx = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -136,7 +136,13 @@ bool list_empty(const struct list *list);
|
|||
static inline void *
|
||||
zalloc(size_t size)
|
||||
{
|
||||
return calloc(1, size);
|
||||
void *p;
|
||||
|
||||
p = calloc(1, size);
|
||||
if (!p)
|
||||
abort();
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
/* This bitfield helper implementation is taken from from libevdev-util.h,
|
||||
|
|
|
|||
|
|
@ -1648,9 +1648,6 @@ libinput_add_fd(struct libinput *libinput,
|
|||
struct epoll_event ep;
|
||||
|
||||
source = zalloc(sizeof *source);
|
||||
if (!source)
|
||||
return NULL;
|
||||
|
||||
source->dispatch = dispatch;
|
||||
source->user_data = user_data;
|
||||
source->fd = fd;
|
||||
|
|
@ -1691,11 +1688,6 @@ libinput_init(struct libinput *libinput,
|
|||
|
||||
libinput->events_len = 4;
|
||||
libinput->events = zalloc(libinput->events_len * sizeof(*libinput->events));
|
||||
if (!libinput->events) {
|
||||
close(libinput->epoll_fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
libinput->log_handler = libinput_default_log_func;
|
||||
libinput->log_priority = LIBINPUT_LOG_PRIORITY_ERROR;
|
||||
libinput->interface = interface;
|
||||
|
|
@ -2121,8 +2113,6 @@ notify_added_device(struct libinput_device *device)
|
|||
struct libinput_event_device_notify *added_device_event;
|
||||
|
||||
added_device_event = zalloc(sizeof *added_device_event);
|
||||
if (!added_device_event)
|
||||
return;
|
||||
|
||||
post_base_event(device,
|
||||
LIBINPUT_EVENT_DEVICE_ADDED,
|
||||
|
|
@ -2135,8 +2125,6 @@ notify_removed_device(struct libinput_device *device)
|
|||
struct libinput_event_device_notify *removed_device_event;
|
||||
|
||||
removed_device_event = zalloc(sizeof *removed_device_event);
|
||||
if (!removed_device_event)
|
||||
return;
|
||||
|
||||
post_base_event(device,
|
||||
LIBINPUT_EVENT_DEVICE_REMOVED,
|
||||
|
|
@ -2197,8 +2185,6 @@ keyboard_notify_key(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
key_event = zalloc(sizeof *key_event);
|
||||
if (!key_event)
|
||||
return;
|
||||
|
||||
seat_key_count = update_seat_key_count(device->seat, key, state);
|
||||
|
||||
|
|
@ -2226,8 +2212,6 @@ pointer_notify_motion(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
motion_event = zalloc(sizeof *motion_event);
|
||||
if (!motion_event)
|
||||
return;
|
||||
|
||||
*motion_event = (struct libinput_event_pointer) {
|
||||
.time = time,
|
||||
|
|
@ -2251,8 +2235,6 @@ pointer_notify_motion_absolute(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
motion_absolute_event = zalloc(sizeof *motion_absolute_event);
|
||||
if (!motion_absolute_event)
|
||||
return;
|
||||
|
||||
*motion_absolute_event = (struct libinput_event_pointer) {
|
||||
.time = time,
|
||||
|
|
@ -2277,8 +2259,6 @@ pointer_notify_button(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
button_event = zalloc(sizeof *button_event);
|
||||
if (!button_event)
|
||||
return;
|
||||
|
||||
seat_button_count = update_seat_button_count(device->seat,
|
||||
button,
|
||||
|
|
@ -2310,8 +2290,6 @@ pointer_notify_axis(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
axis_event = zalloc(sizeof *axis_event);
|
||||
if (!axis_event)
|
||||
return;
|
||||
|
||||
*axis_event = (struct libinput_event_pointer) {
|
||||
.time = time,
|
||||
|
|
@ -2339,8 +2317,6 @@ touch_notify_touch_down(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
touch_event = zalloc(sizeof *touch_event);
|
||||
if (!touch_event)
|
||||
return;
|
||||
|
||||
*touch_event = (struct libinput_event_touch) {
|
||||
.time = time,
|
||||
|
|
@ -2367,8 +2343,6 @@ touch_notify_touch_motion(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
touch_event = zalloc(sizeof *touch_event);
|
||||
if (!touch_event)
|
||||
return;
|
||||
|
||||
*touch_event = (struct libinput_event_touch) {
|
||||
.time = time,
|
||||
|
|
@ -2394,8 +2368,6 @@ touch_notify_touch_up(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
touch_event = zalloc(sizeof *touch_event);
|
||||
if (!touch_event)
|
||||
return;
|
||||
|
||||
*touch_event = (struct libinput_event_touch) {
|
||||
.time = time,
|
||||
|
|
@ -2418,8 +2390,6 @@ touch_notify_frame(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
touch_event = zalloc(sizeof *touch_event);
|
||||
if (!touch_event)
|
||||
return;
|
||||
|
||||
*touch_event = (struct libinput_event_touch) {
|
||||
.time = time,
|
||||
|
|
@ -2441,8 +2411,6 @@ tablet_notify_axis(struct libinput_device *device,
|
|||
struct libinput_event_tablet_tool *axis_event;
|
||||
|
||||
axis_event = zalloc(sizeof *axis_event);
|
||||
if (!axis_event)
|
||||
return;
|
||||
|
||||
*axis_event = (struct libinput_event_tablet_tool) {
|
||||
.time = time,
|
||||
|
|
@ -2473,8 +2441,6 @@ tablet_notify_proximity(struct libinput_device *device,
|
|||
struct libinput_event_tablet_tool *proximity_event;
|
||||
|
||||
proximity_event = zalloc(sizeof *proximity_event);
|
||||
if (!proximity_event)
|
||||
return;
|
||||
|
||||
*proximity_event = (struct libinput_event_tablet_tool) {
|
||||
.time = time,
|
||||
|
|
@ -2504,8 +2470,6 @@ tablet_notify_tip(struct libinput_device *device,
|
|||
struct libinput_event_tablet_tool *tip_event;
|
||||
|
||||
tip_event = zalloc(sizeof *tip_event);
|
||||
if (!tip_event)
|
||||
return;
|
||||
|
||||
*tip_event = (struct libinput_event_tablet_tool) {
|
||||
.time = time,
|
||||
|
|
@ -2537,8 +2501,6 @@ tablet_notify_button(struct libinput_device *device,
|
|||
int32_t seat_button_count;
|
||||
|
||||
button_event = zalloc(sizeof *button_event);
|
||||
if (!button_event)
|
||||
return;
|
||||
|
||||
seat_button_count = update_seat_button_count(device->seat,
|
||||
button,
|
||||
|
|
@ -2572,8 +2534,6 @@ tablet_pad_notify_button(struct libinput_device *device,
|
|||
unsigned int mode;
|
||||
|
||||
button_event = zalloc(sizeof *button_event);
|
||||
if (!button_event)
|
||||
return;
|
||||
|
||||
mode = libinput_tablet_pad_mode_group_get_mode(group);
|
||||
|
||||
|
|
@ -2603,8 +2563,6 @@ tablet_pad_notify_ring(struct libinput_device *device,
|
|||
unsigned int mode;
|
||||
|
||||
ring_event = zalloc(sizeof *ring_event);
|
||||
if (!ring_event)
|
||||
return;
|
||||
|
||||
mode = libinput_tablet_pad_mode_group_get_mode(group);
|
||||
|
||||
|
|
@ -2635,8 +2593,6 @@ tablet_pad_notify_strip(struct libinput_device *device,
|
|||
unsigned int mode;
|
||||
|
||||
strip_event = zalloc(sizeof *strip_event);
|
||||
if (!strip_event)
|
||||
return;
|
||||
|
||||
mode = libinput_tablet_pad_mode_group_get_mode(group);
|
||||
|
||||
|
|
@ -2672,8 +2628,6 @@ gesture_notify(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
gesture_event = zalloc(sizeof *gesture_event);
|
||||
if (!gesture_event)
|
||||
return;
|
||||
|
||||
*gesture_event = (struct libinput_event_gesture) {
|
||||
.time = time,
|
||||
|
|
@ -2752,8 +2706,6 @@ switch_notify_toggle(struct libinput_device *device,
|
|||
return;
|
||||
|
||||
switch_event = zalloc(sizeof *switch_event);
|
||||
if (!switch_event)
|
||||
return;
|
||||
|
||||
*switch_event = (struct libinput_event_switch) {
|
||||
.time = time,
|
||||
|
|
@ -3366,9 +3318,6 @@ libinput_device_group_create(struct libinput *libinput,
|
|||
struct libinput_device_group *group;
|
||||
|
||||
group = zalloc(sizeof *group);
|
||||
if (!group)
|
||||
return NULL;
|
||||
|
||||
group->refcount = 1;
|
||||
if (identifier) {
|
||||
group->identifier = strdup(identifier);
|
||||
|
|
|
|||
|
|
@ -83,8 +83,6 @@ path_seat_create(struct path_input *input,
|
|||
struct path_seat *seat;
|
||||
|
||||
seat = zalloc(sizeof(*seat));
|
||||
if (!seat)
|
||||
return NULL;
|
||||
|
||||
libinput_seat_init(&seat->base, &input->base, seat_name,
|
||||
seat_logical_name, path_seat_destroy);
|
||||
|
|
@ -226,9 +224,6 @@ path_create_device(struct libinput *libinput,
|
|||
struct libinput_device *device;
|
||||
|
||||
dev = zalloc(sizeof *dev);
|
||||
if (!dev)
|
||||
return NULL;
|
||||
|
||||
dev->udev_device = udev_device_ref(udev_device);
|
||||
|
||||
list_insert(&input->path_list, &dev->link);
|
||||
|
|
@ -285,8 +280,7 @@ libinput_path_create_context(const struct libinput_interface *interface,
|
|||
return NULL;
|
||||
|
||||
input = zalloc(sizeof *input);
|
||||
if (!input ||
|
||||
libinput_init(&input->base, interface,
|
||||
if (libinput_init(&input->base, interface,
|
||||
&interface_backend, user_data) != 0) {
|
||||
udev_unref(udev);
|
||||
free(input);
|
||||
|
|
|
|||
|
|
@ -296,8 +296,6 @@ udev_seat_create(struct udev_input *input,
|
|||
struct udev_seat *seat;
|
||||
|
||||
seat = zalloc(sizeof *seat);
|
||||
if (!seat)
|
||||
return NULL;
|
||||
|
||||
libinput_seat_init(&seat->base, &input->base,
|
||||
device_seat, seat_name,
|
||||
|
|
@ -355,8 +353,6 @@ libinput_udev_create_context(const struct libinput_interface *interface,
|
|||
return NULL;
|
||||
|
||||
input = zalloc(sizeof *input);
|
||||
if (!input)
|
||||
return NULL;
|
||||
|
||||
if (libinput_init(&input->base, interface,
|
||||
&interface_backend, user_data) != 0) {
|
||||
|
|
|
|||
|
|
@ -148,8 +148,9 @@ struct litest_test_device litest_atmel_hover_device = {
|
|||
static void
|
||||
atmel_hover_create(struct litest_device *d)
|
||||
{
|
||||
struct litest_semi_mt *semi_mt = zalloc(sizeof(*semi_mt));
|
||||
assert(semi_mt);
|
||||
struct litest_semi_mt *semi_mt;
|
||||
|
||||
semi_mt = zalloc(sizeof(*semi_mt));
|
||||
|
||||
d->private = semi_mt;
|
||||
|
||||
|
|
|
|||
|
|
@ -524,7 +524,6 @@ litest_add_tcase_for_device(struct suite *suite,
|
|||
struct test *t;
|
||||
|
||||
t = zalloc(sizeof(*t));
|
||||
assert(t != NULL);
|
||||
t->name = strdup(funcname);
|
||||
t->devname = strdup(dev->shortname);
|
||||
t->func = func;
|
||||
|
|
@ -550,7 +549,6 @@ litest_add_tcase_no_device(struct suite *suite,
|
|||
return;
|
||||
|
||||
t = zalloc(sizeof(*t));
|
||||
assert(t != NULL);
|
||||
t->name = strdup(test_name);
|
||||
t->devname = strdup("no device");
|
||||
t->func = func;
|
||||
|
|
@ -573,7 +571,6 @@ get_suite(const char *name)
|
|||
}
|
||||
|
||||
s = zalloc(sizeof(*s));
|
||||
assert(s != NULL);
|
||||
s->name = strdup(name);
|
||||
|
||||
list_init(&s->tests);
|
||||
|
|
@ -831,7 +828,6 @@ litest_init_all_device_udev_rules(struct list *created_files)
|
|||
udev_file = litest_init_device_udev_rules(*dev);
|
||||
if (udev_file) {
|
||||
struct created_file *file = zalloc(sizeof(*file));
|
||||
litest_assert(file);
|
||||
file->path = udev_file;
|
||||
list_insert(created_files, &file->link);
|
||||
}
|
||||
|
|
@ -952,7 +948,6 @@ litest_run_suite(struct list *tests, int which, int max)
|
|||
t->devname);
|
||||
litest_assert(sname != NULL);
|
||||
n = zalloc(sizeof(*n));
|
||||
litest_assert_notnull(n);
|
||||
n->name = sname;
|
||||
list_insert(&testnames, &n->node);
|
||||
|
||||
|
|
@ -962,7 +957,6 @@ litest_run_suite(struct list *tests, int which, int max)
|
|||
t->devname);
|
||||
litest_assert(tname != NULL);
|
||||
n = zalloc(sizeof(*n));
|
||||
litest_assert_notnull(n);
|
||||
n->name = tname;
|
||||
list_insert(&testnames, &n->node);
|
||||
|
||||
|
|
@ -1139,7 +1133,6 @@ litest_copy_file(const char *dest, const char *src, const char *header)
|
|||
int suffixlen;
|
||||
|
||||
file = zalloc(sizeof(*file));
|
||||
litest_assert(file);
|
||||
file->path = strdup(dest);
|
||||
litest_assert(file->path);
|
||||
|
||||
|
|
@ -1295,7 +1288,6 @@ litest_create(enum litest_device_type which,
|
|||
ck_abort_msg("Invalid device type %d\n", which);
|
||||
|
||||
d = zalloc(sizeof(*d));
|
||||
litest_assert(d != NULL);
|
||||
|
||||
/* device has custom create method */
|
||||
if ((*dev)->create) {
|
||||
|
|
|
|||
|
|
@ -71,8 +71,9 @@ touch_tdelta_ms(const struct touch *t)
|
|||
static inline struct tap_data *
|
||||
tap_data_new(void)
|
||||
{
|
||||
struct tap_data *tap_data = zalloc(sizeof(struct tap_data));
|
||||
assert(tap_data);
|
||||
struct tap_data *tap_data;
|
||||
|
||||
tap_data = zalloc(sizeof(struct tap_data));
|
||||
|
||||
return tap_data;
|
||||
}
|
||||
|
|
@ -122,7 +123,6 @@ tap_data_duplicate_sorted(const struct tap_data *src,
|
|||
dest->toffset = src->toffset;
|
||||
dest->touches_sz = dest->count;
|
||||
dest->touches = zalloc(dest->count * sizeof(*dest->touches));
|
||||
assert(dest->touches);
|
||||
|
||||
memcpy(dest->touches,
|
||||
src->touches,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue