smalloc: fix off-by-one in ptr_valid()
authorJens Axboe <jens.axboe@oracle.com>
Tue, 27 May 2008 12:44:23 +0000 (14:44 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Tue, 27 May 2008 12:44:23 +0000 (14:44 +0200)
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
smalloc.c

index c03c4040b847358ff827ddf044f13f7349ce7409..e97ba011319bd83e33549b51880d63fa2031806a 100644 (file)
--- a/smalloc.c
+++ b/smalloc.c
@@ -90,7 +90,7 @@ static inline void global_write_unlock(void)
 
 static inline int ptr_valid(struct pool *pool, void *ptr)
 {
-       unsigned int pool_size = pool->nr_blocks * SMALLOC_BPL;
+       unsigned int pool_size = (pool->nr_blocks + 1) * SMALLOC_BPL;
 
        return (ptr >= pool->map) && (ptr < pool->map + pool_size);
 }