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

