
From: Nikita Danilov <Nikita@Namesys.COM>

fs/reiserfs/journal.c:cleanup_bitmap_list() can be called to cleanup
reiserfs_list_bitmap that was only partly initialized. Check that
jb->bitmaps array was actually allocated, before trying to free its
elements.



---

 fs/reiserfs/journal.c |    3 +++
 1 files changed, 3 insertions(+)

diff -puN fs/reiserfs/journal.c~reiserfs-cleanup_bitmap_list-oops-fix fs/reiserfs/journal.c
--- 25/fs/reiserfs/journal.c~reiserfs-cleanup_bitmap_list-oops-fix	2004-01-19 12:09:55.000000000 -0800
+++ 25-akpm/fs/reiserfs/journal.c	2004-01-19 12:09:55.000000000 -0800
@@ -193,6 +193,9 @@ static int set_bit_in_list_bitmap(struct
 static void cleanup_bitmap_list(struct super_block *p_s_sb,
                                 struct reiserfs_list_bitmap *jb) {
   int i;
+  if (jb->bitmaps == NULL)
+    return;
+
   for (i = 0 ; i < SB_BMAP_NR(p_s_sb) ; i++) {
     if (jb->bitmaps[i]) {
       free_bitmap_node(p_s_sb, jb->bitmaps[i]) ;

_
