[systemd-commits] src/udev

Colin Walters walters at kemper.freedesktop.org
Thu Aug 22 14:07:45 PDT 2013


 src/udev/udevd.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

New commits:
commit 73814ca287cafcfa488f7ac85b25bc8584334db3
Author: Colin Walters <walters at verbum.org>
Date:   Thu Aug 22 17:03:29 2013 -0400

    Revert "udevd: simplify sigterm check"
    
    This reverts commit 47e737dc13bf4251ae5a2249ec29b34503ed92e1 - it
    introduced a use-after-free.  The only way the code would get simpler
    is with a cleanup function, but eh, not worth it for just this one
    bit.
    
    Reviewed by kay on IRC.

diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index fd799cc..7c6c5d6 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -314,10 +314,12 @@ static void worker_new(struct event *event)
                         udev_device_unref(dev);
                         dev = NULL;
 
-                        udev_event_unref(udev_event);
-
-                        if (udev_event->sigterm)
+                        if (udev_event->sigterm) {
+                                udev_event_unref(udev_event);
                                 goto out;
+                        }
+
+                        udev_event_unref(udev_event);
 
                         /* wait for more device messages from main udevd, or term signal */
                         while (dev == NULL) {



More information about the systemd-commits mailing list