From 0e4e9344d18f3c1c037cc32c0dfab799ad2180b7 Mon Sep 17 00:00:00 2001
From: Arne Goedeke <el@laramies.com>
Date: Thu, 13 Jun 2013 23:35:42 +0200
Subject: [PATCH] block_alloc: memusage stats could overflow

---
 src/block_allocator.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/block_allocator.c b/src/block_allocator.c
index 44e3fd90e3..56a45a184b 100644
--- a/src/block_allocator.c
+++ b/src/block_allocator.c
@@ -89,9 +89,13 @@ PMOD_EXPORT size_t ba_count(const struct block_allocator * a) {
 }
 
 PMOD_EXPORT void ba_count_all(const struct block_allocator * a, size_t * num, size_t * size) {
-    size_t n = (a->l.blocks << (a->size-1)) - a->l.blocks;
-    *num = n;
-    *size = a->l.block_size * n;
+    if (a->size) {
+	size_t n = (a->l.blocks << (a->size-1)) - a->l.blocks;
+	*num = n;
+	*size = a->l.block_size * n;
+    } else {
+	*num = *size = 0;
+    }
 }
 
 static void ba_low_alloc(struct block_allocator * a) {
-- 
GitLab