diff --git a/ChangeLog b/ChangeLog index b0549ffe2dc34f7c90662a73da9877ff8426d0b7..9a5f0a9bdfa2a695dbe85fb0544a20af007d4a3f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-12-24 Per Cederqvist <ceder@lysator.liu.se> + + Writing to a client that was disconnecting and blocked could cause + the server to crash. (Bug 1403). + * src/server/connections.c (check_idle_callback): Don't crash if + isc_enable() fails. Emit the session number in the log, mostly + for debug purposes. + 2005-12-23 Per Cederqvist <ceder@lysator.liu.se> Add automake-generated files to svn:ignore. diff --git a/src/server/connections.c b/src/server/connections.c index c3bb81e2bf53823323b621ef1684168107eef909..d7d69d202021606e2d1a7cc0ea489f3cd6f91299 100644 --- a/src/server/connections.c +++ b/src/server/connections.c @@ -1106,13 +1106,16 @@ check_idle_callback(oop_source *UNUSED(source), next = next->queue_next; c->queue_next = NULL; if (isc_enable(c->isc_session) < 0) - restart_kom("failed to re-enable session\n"); - - /* The call to read_from_connection() might add the - connection to the queue. That's why we remove all entries - first, and use a private queue within this function. */ - if (!go_and_die) + { + kom_log("failed to re-enable session %ld\n", (long)c->session_no); + } + else if (!go_and_die) + { + /* The call to read_from_connection() might add the + connection to the queue. That's why we remove all entries + first, and use a private queue within this function. */ read_from_connection(c); + } } if (!is_idle)