Make the argument to fence_malloc() an int64_t
authorSøren Sandmann Pedersen <ssp@redhat.com>
Tue, 12 Oct 2010 14:56:26 +0000 (10:56 -0400)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Fri, 17 Dec 2010 22:01:52 +0000 (17:01 -0500)
That way we can detect if someone attempts to allocate a negative size
and abort instead of just returning NULL and segfaulting later.

test/utils.c
test/utils.h

index cde9c62..a7abec5 100644 (file)
@@ -232,7 +232,7 @@ typedef struct
 #endif
 
 void *
-fence_malloc (uint32_t len)
+fence_malloc (int64_t len)
 {
     unsigned long page_size = getpagesize();
     unsigned long page_mask = page_size - 1;
@@ -246,12 +246,15 @@ fence_malloc (uint32_t len)
     uint8_t *payload;
     uint8_t *addr;
 
+    if (len < 0)
+       abort();
+    
     addr = mmap (NULL, n_bytes, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS,
                 -1, 0);
 
     if (addr == MAP_FAILED)
     {
-       printf ("mmap failed on %u %u\n", len, n_bytes);
+       printf ("mmap failed on %lld %u\n", (long long int)len, n_bytes);
        return NULL;
     }
 
index 7b33461..abd11ec 100644 (file)
@@ -57,7 +57,7 @@ image_endian_swap (pixman_image_t *img, int bpp);
  * so that out-of-bounds access will cause segfaults
  */
 void *
-fence_malloc (uint32_t len);
+fence_malloc (int64_t len);
 
 void
 fence_free (void *data);