udf: Avoid infinite loop when processing indirect ICBs
authorJan Kara <jack@suse.cz>
Thu, 4 Sep 2014 12:06:55 +0000 (14:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Oct 2014 19:18:42 +0000 (12:18 -0700)
commit07d209bd092d023976fdb881ba6d4b30fe18aebe
tree6dec6c4fb032239a9b07fa2073fb8a6f666f4d51
parent926719debff484d9678a324c71e948b7dd60352b
udf: Avoid infinite loop when processing indirect ICBs

commit c03aa9f6e1f938618e6db2e23afef0574efeeb65 upstream.

We did not implement any bound on number of indirect ICBs we follow when
loading inode. Thus corrupted medium could cause kernel to go into an
infinite loop, possibly causing a stack overflow.

Fix the possible stack overflow by removing recursion from
__udf_read_inode() and limit number of indirect ICBs we follow to avoid
infinite loops.

Signed-off-by: Jan Kara <jack@suse.cz>
Cc: Chuck Ebbert <cebbert.lkml@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/udf/inode.c