chiark / gitweb /
udev: event - explicitly don't read() from invalid fd
authorTom Gundersen <teg@jklm.no>
Wed, 17 Sep 2014 19:44:56 +0000 (21:44 +0200)
committerTom Gundersen <teg@jklm.no>
Wed, 17 Sep 2014 20:19:53 +0000 (22:19 +0200)
This fixes CID #1237641.

src/udev/udev-event.c

index 6b8b5a8efa99ec9423bbdfd7ff947c0c987510f3..c8b142077e4432ed4c01a10fc8f730c2efbabccb 100644 (file)
@@ -494,6 +494,9 @@ static void spawn_read(struct udev_event *event,
                 for (i = 0; i < fdcount; i++) {
                         int *fd = (int *)ev[i].data.ptr;
 
+                        if (*fd < 0)
+                                continue;
+
                         if (ev[i].events & EPOLLIN) {
                                 ssize_t count;
                                 char buf[4096];