UBIFS: fix double free of ubifs_orphan objects
authorAdam Thomas <adamthomas1111@gmail.com>
Sat, 2 Feb 2013 22:35:08 +0000 (22:35 +0000)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Mon, 4 Feb 2013 10:31:48 +0000 (12:31 +0200)
commit8afd500cb52a5d00bab4525dd5a560d199f979b9
tree91ee2f6917c1f84300308dc6e659865cae89a3cc
parent2928f0d0c5ebd6c9605c0d98207a44376387c298
UBIFS: fix double free of ubifs_orphan objects

The last orphan in the dnext list has its dnext set to NULL. Because
of that, ubifs_delete_orphan assumes that it is not on the dnext list
and frees it immediately instead ignoring it as a second delete. The
orphan is later freed again by erase_deleted.

This change adds an explicit flag to ubifs_orphan indicating whether
it is pending delete.

Signed-off-by: Adam Thomas <adamthomas1111@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Cc: stable@vger.kernel.org
fs/ubifs/orphan.c
fs/ubifs/ubifs.h