If a device is assigned a name, uniq and/or phys before calling
libevdev_set_fd(), those values would leak.
Change the default alloc to calloc, so name, uniq, and phys are initialized to
zero before we call libevdev_reset
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
static void
libevdev_reset(struct libevdev *dev)
{
+ free(dev->name);
+ free(dev->phys);
+ free(dev->uniq);
memset(dev, 0, sizeof(*dev));
dev->fd = -1;
dev->initialized = false;
{
struct libevdev *dev;
- dev = malloc(sizeof(*dev));
+ dev = calloc(1, sizeof(*dev));
if (!dev)
return NULL;