From: Yu Watanabe Date: Mon, 12 Nov 2018 04:07:06 +0000 (+0900) Subject: udevd: do not treat negative value as valid ifindex X-Git-Tag: v240~353^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F10730%2Fhead;p=thirdparty%2Fsystemd.git udevd: do not treat negative value as valid ifindex Also, some conditions in is_devpath_busy() are similified. --- diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 0757628d0de..2664c8475e4 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -653,11 +653,11 @@ static bool is_devpath_busy(Manager *manager, struct event *event) { return true; /* check network device ifindex */ - if (event->ifindex != 0 && event->ifindex == loop_event->ifindex) + if (event->ifindex > 0 && event->ifindex == loop_event->ifindex) return true; /* check our old name */ - if (event->devpath_old != NULL && streq(loop_event->devpath, event->devpath_old)) { + if (event->devpath_old && streq(loop_event->devpath, event->devpath_old)) { event->delaying_seqnum = loop_event->seqnum; return true; } @@ -672,9 +672,7 @@ static bool is_devpath_busy(Manager *manager, struct event *event) { /* identical device event found */ if (loop_event->devpath_len == event->devpath_len) { /* devices names might have changed/swapped in the meantime */ - if (major(event->devnum) != 0 && (event->devnum != loop_event->devnum || event->is_block != loop_event->is_block)) - continue; - if (event->ifindex != 0 && event->ifindex != loop_event->ifindex) + if (major(event->devnum) != 0 || event->ifindex > 0) continue; event->delaying_seqnum = loop_event->seqnum; return true; @@ -691,9 +689,6 @@ static bool is_devpath_busy(Manager *manager, struct event *event) { event->delaying_seqnum = loop_event->seqnum; return true; } - - /* no matching device */ - continue; } return false;