Procházet zdrojové kódy

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.
Nick Mathewson před 8 roky
rodič
revize
39c057d45a
2 změnil soubory, kde provedl 6 přidání a 2 odebrání
  1. 4 0
      changes/bug18716
  2. 2 2
      src/common/memarea.c

+ 4 - 0
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

+ 2 - 2
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