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) {