gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r36230 - libmicrohttpd/src/microhttpd


From: gnunet
Subject: [GNUnet-SVN] r36230 - libmicrohttpd/src/microhttpd
Date: Sat, 8 Aug 2015 14:29:51 +0200

Author: Karlson2k
Date: 2015-08-08 14:29:51 +0200 (Sat, 08 Aug 2015)
New Revision: 36230

Modified:
   libmicrohttpd/src/microhttpd/MHD_limits.h
   libmicrohttpd/src/microhttpd/daemon.c
Log:
daemon.c: MHD_get_timeout(): check for value overflow

Modified: libmicrohttpd/src/microhttpd/MHD_limits.h
===================================================================
--- libmicrohttpd/src/microhttpd/MHD_limits.h   2015-08-08 12:29:43 UTC (rev 
36229)
+++ libmicrohttpd/src/microhttpd/MHD_limits.h   2015-08-08 12:29:51 UTC (rev 
36230)
@@ -36,6 +36,10 @@
 #define LONG_MAX ((long) ~(((uint64_t) 1) << (8 * sizeof(long) - 1)))
 #endif /* !OFF_T_MAX */
 
+#ifndef ULLONG_MAX
+#define ((MHD_UNSIGNED_LONG_LONG) ~((MHD_UNSIGNED_LONG_LONG)0))
+#endif /* !ULLONG_MAX */
+
 #ifndef INT32_MAX
 #define INT32_MAX ((int32_t)0x7FFFFFFF)
 #endif /* !INT32_MAX */

Modified: libmicrohttpd/src/microhttpd/daemon.c
===================================================================
--- libmicrohttpd/src/microhttpd/daemon.c       2015-08-08 12:29:43 UTC (rev 
36229)
+++ libmicrohttpd/src/microhttpd/daemon.c       2015-08-08 12:29:51 UTC (rev 
36230)
@@ -2179,7 +2179,13 @@
   if (earliest_deadline < now)
     *timeout = 0;
   else
-    *timeout = 1000 * (1 + earliest_deadline - now);
+    {
+      const time_t second_left = earliest_deadline - now;
+      if (second_left > ULLONG_MAX / 1000)
+        *timeout = ULLONG_MAX;
+      else
+        *timeout = 1000 * second_left;
+  }
   return MHD_YES;
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]