fix infinite loop in logging when the logged process dies
authorFelix Fietkau <nbd@openwrt.org>
Sun, 16 Oct 2011 14:25:59 +0000 (16:25 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 16 Oct 2011 14:25:59 +0000 (16:25 +0200)
main.c

diff --git a/main.c b/main.c
index 02fd9ff..b17f053 100644 (file)
--- a/main.c
+++ b/main.c
@@ -98,7 +98,7 @@ retry:
                if (errno == EINTR)
                        goto retry;
 
-               return;
+               goto out;
        }
        proc->log_buf_ofs += len;
 
@@ -134,6 +134,10 @@ retry:
 
        if (read_len == maxlen)
                goto retry;
+
+out:
+       if (fd->eof)
+               uloop_fd_delete(fd);
 }
 
 static void