]> git.karo-electronics.de Git - karo-tx-linux.git/commit
UBIFS: fix double free of ubifs_orphan objects
authorAdam Thomas <adamthomas1111@gmail.com>
Sat, 2 Feb 2013 22:35:08 +0000 (22:35 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 3 Mar 2013 22:03:33 +0000 (06:03 +0800)
commitd90dc15e9799e68afce2834a67113f6fff3046fe
treebc55e90eae9cf3b5b03fdcdffbd63bf8c669d931
parentce7f4e84411ba5280e3b781f1da56de95e1fd3e7
UBIFS: fix double free of ubifs_orphan objects

commit 8afd500cb52a5d00bab4525dd5a560d199f979b9 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ubifs/orphan.c
fs/ubifs/ubifs.h