]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
isofs: Fix infinite looping over CE entries
authorJan Kara <jack@suse.cz>
Mon, 15 Dec 2014 13:22:46 +0000 (14:22 +0100)
committerJiri Slaby <jslaby@suse.cz>
Wed, 7 Jan 2015 15:20:18 +0000 (16:20 +0100)
commitfbce0d7dc8965c9fb8d411862040239d4a768c71
treeffa8dd102d2ef01b3f221bc48481733a3cbb2022
parent4c8cb0ee48a5e126b14cd2c957e20bc0722c0258
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: Jiri Slaby <jslaby@suse.cz>
fs/isofs/rock.c