]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Attempt to fix 32-bit builds, which broke with 31508a0abccfee1cd
authorNick Mathewson <nickm@torproject.org>
Thu, 12 Apr 2018 16:24:36 +0000 (12:24 -0400)
committerNick Mathewson <nickm@torproject.org>
Thu, 12 Apr 2018 16:25:09 +0000 (12:25 -0400)
When size_t is 32 bits, doing "size_t ram; if (ram > 8GB) { ... }"
produces a compile-time warning.

Bug caused by #24782 fix; not in any released Tor.

src/or/config.c

index 6b8885521acdca995ea4a84eaca8146c5c47b8af..986794cec5faaab3dfed282cf7c7f26e8285fc30 100644 (file)
@@ -4545,7 +4545,15 @@ compute_real_max_mem_in_queues(const uint64_t val, int log_guess)
       /* We detected the amount of memory available. */
       uint64_t avail = 0;
 
-      if (ram >= (8 * ONE_GIGABYTE)) {
+#if SIZEOF_SIZE_T > 4
+/* On a 64-bit platform, we consider 8GB "very large". */
+#define RAM_IS_VERY_LARGE(x) ((x) >= (8 * ONE_GIGABYTE))
+#else
+/* On a 32-bit platform, we can't have 8GB of ram. */
+#define RAM_IS_VERY_LARGE(x) (0)
+#endif
+
+      if (RAM_IS_VERY_LARGE(ram)) {
         /* If we have 8 GB, or more, RAM available, we set the MaxMemInQueues
          * to 0.4 * RAM. The idea behind this value is that the amount of RAM
          * is more than enough for a single relay and should allow the relay