chiark / gitweb /
Poll loop: fix read of unused fds[]
[secnet.git] / secnet.c
index 2bf50fd40992406108e297cb0dd63cbfe0d24244..36750ec39ae4ffd51979f375d3c37fb9d00e1747 100644 (file)
--- a/secnet.c
+++ b/secnet.c
@@ -309,8 +309,11 @@ static void run(void)
                   ((uint64_t)tv_now_global.tv_usec/(uint64_t)1000);
        idx=0;
        for (i=reg; i; i=i->next) {
-           if(fds[idx].revents & POLLNVAL) {
-               fatal("run: poll (%s) set POLLNVAL", i->desc);
+           int check;
+           for (check=0; check<i->nfds; check++) {
+               if(fds[idx+check].revents & POLLNVAL) {
+                   fatal("run: poll (%s#%d) set POLLNVAL", i->desc, check);
+               }
            }
            i->after(i->state, fds+idx, i->nfds);
            idx+=i->nfds;