swc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/swc
Log | Files | Refs | README | LICENSE

commit 21b4199bf087c1ae45419434a08669eac5e718bb
parent 58da3b4e2e41a6700845df364c936acd3731b0ba
Author: Michael Forney <mforney@mforney.org>
Date:   Mon, 20 Jan 2014 15:29:14 -0800

evdev_device: Fix error handling

Diffstat:
Mlibswc/evdev_device.c | 20+++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/libswc/evdev_device.c b/libswc/evdev_device.c @@ -200,25 +200,25 @@ struct swc_evdev_device * swc_evdev_device_new if (device->fd == -1) { ERROR("Failed to open input device at %s\n", path); - goto error0; + goto error1; } + if (!(device->path = strdup(path))) + goto error2; + if (libevdev_new_from_fd(device->fd, &device->dev) != 0) { ERROR("Failed to create libevdev device\n"); - goto error1; + goto error3; } - if (!(device->path = strdup(path))) - goto error2; - device->source = wl_event_loop_add_fd (swc.event_loop, device->fd, WL_EVENT_READABLE, handle_data, device); if (!device->source) { ERROR("Failed to add event source\n"); - goto error3; + goto error4; } DEBUG("Adding device %s\n", libevdev_get_name(device->dev)); @@ -245,12 +245,14 @@ struct swc_evdev_device * swc_evdev_device_new return device; - error3: + error4: libevdev_free(device->dev); + error3: + free(device->path); error2: - libevdev_free(device->dev); - error1: close(device->fd); + error1: + free(device); error0: return NULL; }