Plug a memory leak for name, uniq, phys

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>
This commit is contained in:
Peter Hutterer 2014-02-27 11:22:27 +10:00
parent 05c061c2bc
commit f162f00f1d

View file

@ -133,6 +133,9 @@ log_msg(enum libevdev_log_priority priority,
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;
@ -148,7 +151,7 @@ libevdev_new(void)
{
struct libevdev *dev;
dev = malloc(sizeof(*dev));
dev = calloc(1, sizeof(*dev));
if (!dev)
return NULL;