From c789a0fdd7135a70d0bff7c0cf4fa1847381dca3 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 8 Jan 2014 12:53:46 +1000 Subject: [PATCH] udev: plug leak when double-resuming Leak when calling libinput_suspend(); libinput_resume(); libinput_resume(); Signed-off-by: Peter Hutterer --- src/udev-seat.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/udev-seat.c b/src/udev-seat.c index ff78bfd..5753ad4 100644 --- a/src/udev-seat.c +++ b/src/udev-seat.c @@ -204,6 +204,9 @@ udev_input_enable(struct udev_input *input) struct udev *udev = input->udev; int fd; + if (input->udev_monitor) + return 0; + input->udev_monitor = udev_monitor_new_from_netlink(udev, "udev"); if (!input->udev_monitor) { log_info("udev: failed to create the udev monitor\n"); @@ -216,6 +219,7 @@ udev_input_enable(struct udev_input *input) if (udev_monitor_enable_receiving(input->udev_monitor)) { log_info("udev: failed to bind the udev monitor\n"); udev_monitor_unref(input->udev_monitor); + input->udev_monitor = NULL; return -1; } @@ -226,6 +230,7 @@ udev_input_enable(struct udev_input *input) input); if (!input->udev_monitor_source) { udev_monitor_unref(input->udev_monitor); + input->udev_monitor = NULL; return -1; } -- 2.7.4