From: Colin Walters Date: Thu, 22 Aug 2013 21:03:29 +0000 (-0400) Subject: Revert "udevd: simplify sigterm check" X-Git-Tag: v207~90 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=73814ca287cafcfa488f7ac85b25bc8584334db3 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 fd799cc91..7c6c5d6a8 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) {