From 19c33f86184fb2cc8fdcc18fd5693bccade52e64 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 19 Jan 2012 16:47:20 +0000 Subject: [PATCH] tclaveirole: fixing #2085 with patch from the bugreport --- ChangeLog | 5 +++++ src/daemon/daemon.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) 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; }