diff --git a/ChangeLog b/ChangeLog index e3004446..f0b2c69f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Jan 19 17:46:05 CET 2012 + Fixing use of uninitialized 'earliest_deadline' variable in + MHD_get_timeout which can lead to returning an incorrect + (too early) timeout (#2085). -tclaveirole + Thu Jan 19 13:31:27 CET 2012 Fixing digest authentication for GET requests with URI arguments (#2059). -CG diff --git a/src/daemon/daemon.c b/src/daemon/daemon.c index 47c7c527..e09fdbc9 100644 --- a/src/daemon/daemon.c +++ b/src/daemon/daemon.c @@ -1219,14 +1219,15 @@ MHD_get_timeout (struct MHD_Daemon *daemon, while (pos != NULL) { if (0 != pos->connection_timeout) { - have_timeout = MHD_YES; - if (earliest_deadline > pos->last_activity + pos->connection_timeout) + if (!have_timeout || + earliest_deadline > pos->last_activity + pos->connection_timeout) earliest_deadline = pos->last_activity + pos->connection_timeout; #if HTTPS_SUPPORT if ( (0 != (daemon->options & MHD_USE_SSL)) && (0 != gnutls_record_check_pending (pos->tls_session)) ) earliest_deadline = 0; #endif + have_timeout = MHD_YES; } pos = pos->next; }