Package: udev Version: 0.72-2 Severity: grave udevd fails to timeout events if it runs on a kernel without inotify. The attached patch fixes the select call.
Bastian -- Actual war is a very messy business. Very, very messy business. -- Kirk, "A Taste of Armageddon", stardate 3193.0
diff -urN udev-072.orig/udevd.c udev-072/udevd.c --- udev-072.orig/udevd.c 2005-11-05 22:05:35.000000000 +0100 +++ udev-072/udevd.c 2005-11-07 00:01:32.000000000 +0100 @@ -996,12 +996,17 @@ FD_ZERO(&readfds); FD_SET(signal_pipe[READ_END], &readfds); + fdcount = signal_pipe[READ_END]; FD_SET(udevd_sock, &readfds); + fdcount = UDEV_MAX(fdcount, udevd_sock); FD_SET(uevent_netlink_sock, &readfds); - if (inotify_fd > 0) + fdcount = UDEV_MAX(fdcount, uevent_netlink_sock); + if (inotify_fd > 0) { FD_SET(inotify_fd, &readfds); + fdcount = UDEV_MAX(fdcount, inotify_fd); + } - fdcount = select(UDEV_MAX(uevent_netlink_sock, inotify_fd)+1, &readfds, NULL, NULL, NULL); + fdcount = select(fdcount+1, &readfds, NULL, NULL, NULL); if (fdcount < 0) { if (errno != EINTR) dbg("error in select: %s", strerror(errno));
signature.asc
Description: Digital signature