mirror of
https://gitlab.freedesktop.org/libevdev/libevdev.git
synced 2026-05-05 19:18:02 +02:00
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:
parent
05c061c2bc
commit
f162f00f1d
1 changed files with 4 additions and 1 deletions
|
|
@ -133,6 +133,9 @@ log_msg(enum libevdev_log_priority priority,
|
||||||
static void
|
static void
|
||||||
libevdev_reset(struct libevdev *dev)
|
libevdev_reset(struct libevdev *dev)
|
||||||
{
|
{
|
||||||
|
free(dev->name);
|
||||||
|
free(dev->phys);
|
||||||
|
free(dev->uniq);
|
||||||
memset(dev, 0, sizeof(*dev));
|
memset(dev, 0, sizeof(*dev));
|
||||||
dev->fd = -1;
|
dev->fd = -1;
|
||||||
dev->initialized = false;
|
dev->initialized = false;
|
||||||
|
|
@ -148,7 +151,7 @@ libevdev_new(void)
|
||||||
{
|
{
|
||||||
struct libevdev *dev;
|
struct libevdev *dev;
|
||||||
|
|
||||||
dev = malloc(sizeof(*dev));
|
dev = calloc(1, sizeof(*dev));
|
||||||
if (!dev)
|
if (!dev)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue