From: Oleg Drokin <green@linuxhacker.ru>

Thanks to Standford guys, a case where reiserfs can dereference NULL
pointer if memory allocation fail during mount was identified.


---

 25-akpm/fs/reiserfs/journal.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff -puN fs/reiserfs/journal.c~make-reiserfs-not-to-crash-on-oom fs/reiserfs/journal.c
--- 25/fs/reiserfs/journal.c~make-reiserfs-not-to-crash-on-oom	2004-05-12 21:02:45.137683936 -0700
+++ 25-akpm/fs/reiserfs/journal.c	2004-05-12 21:02:45.144682872 -0700
@@ -2263,8 +2263,10 @@ int journal_init(struct super_block *p_s
     INIT_LIST_HEAD (&SB_JOURNAL(p_s_sb)->j_prealloc_list);
     INIT_LIST_HEAD(&SB_JOURNAL(p_s_sb)->j_working_list);
     INIT_LIST_HEAD(&SB_JOURNAL(p_s_sb)->j_journal_list);
-    reiserfs_allocate_list_bitmaps(p_s_sb, SB_JOURNAL(p_s_sb)->j_list_bitmap, 
- 				   SB_BMAP_NR(p_s_sb)) ;
+    if (reiserfs_allocate_list_bitmaps(p_s_sb,
+				       SB_JOURNAL(p_s_sb)->j_list_bitmap,
+ 				       SB_BMAP_NR(p_s_sb)))
+	goto free_and_return ;
     allocate_bitmap_nodes(p_s_sb) ;
 
     /* reserved for journal area support */

_