uboot/fs/ubifs
Lars Poeschel 349a8d5e56 ubifs bad superblock bug
This patch fixes an issue when ubifs reads a bad superblock. Later it
tries to free memory, that was not allocated, which freezes u-boot.
This is fixed by looking for a non null pointer before free.

The message I got before u-boot freezes:
UBI: max/mean erase counter: 53/32
UBIFS: mounted UBI device 0, volume 1, name "rootfs"
UBIFS: mounted read-only
UBIFS: file system size:   49140 bytes (50319360 KiB, 0 MiB, 49140 LEBs)
UBIFS: journal size:       49 bytes (6838272 KiB, 0 MiB, 6678 LEBs)
UBIFS: media format:       w4/r0 (latest is w4/r0)
UBIFS: default compressor: LZO
UBIFS: reserved for root:  0 bytes (0 KiB)
UBIFS error (pid 0): ubifs_read_node: bad node type (255 but expected 9)
UBIFS error (pid 0): ubifs_read_node: bad node at LEB 330:13104
UBIFS error (pid 0): ubifs_iget: failed to read inode 1, error -22
Error reading superblock on volume 'ubi:rootfs'!

Signed-off-by: Lars Poeschel <larsi@wh2.tu-dresden.de>
Cc: Kyungmin Park <kmpark@infradead.org>
Signed-off-by: Stefan Roese <sr@denx.de>
2011-10-12 11:33:17 +02:00
..
Makefile Switch from archive libraries to partial linking 2010-11-17 21:02:18 +01:00
budget.c
crc16.c
crc16.h Update CHANGELOG, coding style cleanup. 2009-04-05 00:27:57 +02:00
debug.c
debug.h
io.c
key.h
log.c
lprops.c
lpt.c
lpt_commit.c
master.c
misc.h UBIFS: Fix dereferencing type-punned pointer compiler warning 2011-01-11 11:09:36 +01:00
orphan.c
recovery.c UBIFS: fix recovery bug 2009-04-28 00:36:21 +02:00
replay.c
sb.c UBIFS: add R/O compatibility 2009-04-04 22:44:22 +02:00
scan.c
super.c ubifs bad superblock bug 2011-10-12 11:33:17 +02:00
tnc.c
tnc_misc.c
ubifs-media.h UBIFS: add R/O compatibility 2009-04-04 22:44:22 +02:00
ubifs.c UBIFS: fix warning: format '%lX' expects type 'long unsigned int' 2011-09-10 01:10:32 +02:00
ubifs.h move prototypes for gunzip() and zunzip() to common.h 2009-12-21 21:39:59 +01:00