Index: identd.c =================================================================== RCS file: /cvs/src/usr.sbin/identd/identd.c,v retrieving revision 1.29 diff -u -p -r1.29 identd.c --- identd.c 4 Aug 2015 11:05:18 -0000 1.29 +++ identd.c 20 Aug 2015 10:41:11 -0000 @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -309,6 +310,9 @@ main(int argc, char *argv[]) event_init(); + if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) + lerr(1, "signal(SIGPIPE)"); + if (ioctl(sibling, FIONBIO, &on) == -1) lerr(1, "sibling ioctl(FIONBIO)"); @@ -1021,8 +1025,11 @@ identd_response(int fd, short events, vo case EINTR: case EAGAIN: return; /* try again later */ + case EPIPE: + goto done; default: - lerr(1, "response write"); + lwarn("response write"); + goto done; } }