udevd: unref udev device in error path
PATCH 1/3 udevd: unref udev device in error path
From 09610e30e2b2c087393afe1d620e5e6d75271503 Mon Sep 17 00:00:00 2001
From: Yin Kangkai <[email protected]>
Date: Thu, 5 Aug 2010 11:47:48 +0800
Subject: [PATCH 1/3] udevd: unref udev device in error path
Signed-off-by Yin Kangkai <[email protected]>
--- udev/udevd.c | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-)
udev/udevd.c +7 -6
@@ -402,13 +402,13 @@ static void event_run(struct event *event, bool force)worker_new (event); } -static void event_queue_insert (struct udev_device *dev) +static int event_queue_insert (struct udev_device *dev) {struct event *event; event =calloc (1 ,sizeof (struct event ));if (event =NULL ) -return ; +return -1 ; event->udev =udev_device_get_udev (dev); event->dev = dev;
@@ -429,8 +429,10 @@ static void event_queue_insert(struct udev_device *dev)/* run all events with a timeout set immediately */ if (udev_device_get_timeout (dev) >0 ) {event_run (event, true); -return ; +return 0 ; } + +return 0 ; }static void worker_kill (struct udev *udev,int retain)
@@ -1351,9 +1353,8 @@ int main(int argc, char *argv[]) dev =udev_monitor_receive_device (monitor);if (dev !=NULL ) -event_queue_insert (dev); -else -udev_device_unref (dev); +if (event_queue_insert (dev) <0 ) +udev_device_unref (dev); }/* start new events */
Signature · 1 line
1.6.5
Hello Yin,
Yin Kangkai [2010-08-06 15:23 +0800]:
Quoted 1 line
udevd: unref udev device in error path
Ah, nice catch! Applied.
Thanks,
Martin
Signature · 2 lines
Martin Pitt | http://www.piware.de Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)