From f29008b758e82f9ba2d2f9627a680c952d44668b Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 18 Mar 2014 13:55:21 +1000 Subject: uinput: check for asprintf failure This doesn't really do much here, but strictly speaking: if asprintf returns -1, devnode is undefined. So reset it to NULL to avoid weird pointers. And also free the rest of the names if we ever have more than one device - which also shouldn't happen. Signed-off-by: Peter Hutterer Reviewed-by: Benjamin Tissoires --- libevdev/libevdev-uinput.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libevdev/libevdev-uinput.c b/libevdev/libevdev-uinput.c index 09b7044..0543bc4 100644 --- a/libevdev/libevdev-uinput.c +++ b/libevdev/libevdev-uinput.c @@ -179,7 +179,8 @@ fetch_device_node(const char *path) /* ndev should only ever be 1 */ for (i = 0; i < ndev; i++) { - asprintf(&devnode, "/dev/input/%s", namelist[i]->d_name); + if (!devnode && asprintf(&devnode, "/dev/input/%s", namelist[i]->d_name) == -1) + devnode = NULL; free(namelist[i]); } -- cgit v1.2.1