diff -urN openradius-0.9.9/Rules.mk openradius-0.9.9b/Rules.mk --- openradius-0.9.9/Rules.mk Wed Aug 11 16:46:24 2004 +++ openradius-0.9.9b/Rules.mk Sun Aug 29 13:20:20 2004 @@ -7,7 +7,7 @@ # Standard stuff -VERSION := 0.9.9 +VERSION := 0.9.9b .SUFFIXES: .SUFFIXES: .c .o diff -urN openradius-0.9.9/common/subprocs.c openradius-0.9.9b/common/subprocs.c --- openradius-0.9.9/common/subprocs.c Sat Aug 7 21:45:36 2004 +++ openradius-0.9.9b/common/subprocs.c Sun Aug 29 12:57:23 2004 @@ -409,7 +409,11 @@ ssize_t xfered, left; /* Write as much as we can. */ - ring_write(p->w, p->wfd, &xfered, 0); + if (ring_write(p->w, p->wfd, &xfered, 0) == RING_IOERR) { + msg(F_PROC, L_ERR, "proc_handle_write: Warning: write error from %d - killing it to be sure\n", p->pid); + proc_stop(p, t); + return; + } /* If we transfered anything at all, add RECEIVING to our state */ p->state |= PRS_RECEIVING; diff -urN openradius-0.9.9/language/langcompile.c openradius-0.9.9b/language/langcompile.c --- openradius-0.9.9/language/langcompile.c Fri Jan 2 11:22:29 2004 +++ openradius-0.9.9b/language/langcompile.c Fri Aug 27 21:18:03 2004 @@ -394,7 +394,7 @@ if (c == '(' && context == NON) { S(1); l = reccompile(m, ifaces, source, &o, bufsize - ret, 0, - req_ctx, ctx_item, &context); + ANY, ctx_item, &context); if (l == -1) return -1; ret += l; continue; diff -urN openradius-0.9.9/server/main.c openradius-0.9.9b/server/main.c --- openradius-0.9.9/server/main.c Sat Aug 7 21:45:36 2004 +++ openradius-0.9.9b/server/main.c Sun Aug 29 13:19:59 2004 @@ -228,11 +228,12 @@ sa.sa_flags = SA_NOCLDSTOP + SA_RESTART; sa.sa_handler = sighandler; sigaction(SIGHUP, &sa, 0); sigaction(SIGINT, &sa, 0); sigaction(SIGQUIT, &sa, 0); sigaction(SIGTERM, &sa, 0); - sigaction(SIGCHLD, &sa, 0); + sigaction(SIGCHLD, &sa, 0); + sa.sa_handler = SIG_IGN; sigaction(SIGPIPE, &sa, 0); #else signal(SIGHUP, sighandler); signal(SIGINT, sighandler); signal(SIGQUIT, sighandler); signal(SIGTERM, sighandler); - signal(SIGCHLD, sighandler); + signal(SIGCHLD, sighandler); signal(SIGPIPE, SIG_IGN); #endif /* Go to background */