[PATCH 2/2] turn BUG_ON for out of bound in mb_cache_entry_find_first/mb_cache_entry_find_next

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In mb_cache_entry_find_first/mb_cache_entry_find_next, macro
mb_assert is used to do assertion on index, but it just prints
KERN_ERR info if defined.
Currently, only ext2/ext3/ext4 use the function with index set 0.
But for potential usage by other subsystems, I think we shoud report BUG
if we got some index out of bound here.


Following patch is against 2.6.35-rc3, and should be
applied after the first patch.Please check it.

Signed-off-by: Wang Sheng-Hui <crosslonelyover@xxxxxxxxx>
---
 fs/mbcache.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/mbcache.c b/fs/mbcache.c
index 5697d9e..ed25979 100644
--- a/fs/mbcache.c
+++ b/fs/mbcache.c
@@ -614,7 +614,7 @@ mb_cache_entry_find_first(struct mb_cache *cache,
int index,
 	struct list_head *l;
 	struct mb_cache_entry *ce;

-	mb_assert(index < mb_cache_indexes(cache));
+	BUG_ON((index < 0) || (index >= mb_cache_indexes(cache)));
 	spin_lock(&mb_cache_spinlock);
 	l = cache->c_indexes_hash[index][bucket].next;
 	ce = __mb_cache_entry_find(l, &cache->c_indexes_hash[index][bucket],
@@ -652,7 +652,7 @@ mb_cache_entry_find_next(struct mb_cache_entry
*prev, int index,
 	struct list_head *l;
 	struct mb_cache_entry *ce;

-	mb_assert(index < mb_cache_indexes(cache));
+	BUG_ON((index < 0) || (index >= mb_cache_indexes(cache)));
 	spin_lock(&mb_cache_spinlock);
 	l = prev->e_indexes[index].o_list.next;
 	ce = __mb_cache_entry_find(l, &cache->c_indexes_hash[index][bucket],
-- 
1.7.1.1



-- 
Thanks and Regards,
shenghui

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]