isofs: Fix infinite looping over CE entries
commit486aa789eadcf44ed87f972b209299c516454693
authorJan Kara <jack@suse.cz>
Mon, 15 Dec 2014 13:22:46 +0000 (15 14:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Jan 2015 18:27:44 +0000 (8 10:27 -0800)
tree25123a44e5e9f6919d505720a2f54ff9d9effbf8
parent9fbe8b46fa4bb64f8f4f1abcb03d03e92de2aafb
isofs: Fix infinite looping over CE entries

commit f54e18f1b831c92f6512d2eedb224cd63d607d3d upstream.

Rock Ridge extensions define so called Continuation Entries (CE) which
define where is further space with Rock Ridge data. Corrupted isofs
image can contain arbitrarily long chain of these, including a one
containing loop and thus causing kernel to end in an infinite loop when
traversing these entries.

Limit the traversal to 32 entries which should be more than enough space
to store all the Rock Ridge data.

Reported-by: P J P <ppandit@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/isofs/rock.c