[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 from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux