[tor-commits] [tor/master] memarea: Don't assume that sizeof(ulong) >= sizeof(void*).

nickm at torproject.org nickm at torproject.org
Tue Apr 12 17:03:03 UTC 2016


commit 39c057d45a67f9aa80bc05df85ec8deafdb6f46a
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Apr 7 11:10:14 2016 -0400

    memarea: Don't assume that sizeof(ulong) >= sizeof(void*).
    
    Fixes bug 18716; bugfix on 0.2.1.1-alpha where memarea.c was
    introduced.  Found by wbenny.
---
 changes/bug18716     | 4 ++++
 src/common/memarea.c | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/changes/bug18716 b/changes/bug18716
new file mode 100644
index 0000000..b15a343
--- /dev/null
+++ b/changes/bug18716
@@ -0,0 +1,4 @@
+  o Minor bugfixes (assert, portability):
+    - Fix an assertion failure in memarea.c on systems where "long" is
+      shorter than the size of a pointer.
+      Fixes bug 18716; bugfix on 0.2.1.1-alpha
diff --git a/src/common/memarea.c b/src/common/memarea.c
index 6841ba5..6c7e4c7 100644
--- a/src/common/memarea.c
+++ b/src/common/memarea.c
@@ -22,9 +22,9 @@
 #define MEMAREA_ALIGN SIZEOF_VOID_P
 
 #if MEMAREA_ALIGN == 4
-#define MEMAREA_ALIGN_MASK 3lu
+#define MEMAREA_ALIGN_MASK ((uintptr_t)3)
 #elif MEMAREA_ALIGN == 8
-#define MEMAREA_ALIGN_MASK 7lu
+#define MEMAREA_ALIGN_MASK ((uintptr_t)7)
 #else
 #error "void* is neither 4 nor 8 bytes long. I don't know how to align stuff."
 #endif





More information about the tor-commits mailing list