ubifs: fix memory corruption in super.c
authorHeiko Schocher <hs@denx.de>
Thu, 21 Apr 2016 10:16:58 +0000 (12:16 +0200)
committerHeiko Schocher <hs@denx.de>
Fri, 22 Apr 2016 09:48:17 +0000 (11:48 +0200)
commitb1d6590d357bde2332cb699e2fd2efc7a7c64f38
treed89dec92ed7ba1ce5c3ece8fb12f7298d44f927c
parent68fc449033732e7eb2aa022f9ef1b292f6871b8c
ubifs: fix memory corruption in super.c

In list "super_blocks" ubifs collects allocated super_block
structs. U-Boot frees on unmount the allocated struct,
so the pointer stored in this list is free after the umount.
On a new ubifs mount, the new allocated super_block struct
get inserted into the super_blocks list ... which contains
now a freed pointer, and the list_add_tail() corrupts the
freed memory ...

2 solutions are possible:
- remove the super_block from the super_blocks list
  on umount

- as U-Boot does not use the super_blocks list ...
  remove it complete for U-Boot.

Both solutions should not introduce problems for porting
to newer linux version, so this patch removes the unused
super_blocks list, as it saves code size and execution
time.

Signed-off-by: Heiko Schocher <hs@denx.de>
fs/ubifs/super.c