ext4: fix in-superblock mount options processing
authorTheodore Ts'o <tytso@mit.edu>
Fri, 18 Nov 2016 18:24:26 +0000 (13:24 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Jan 2017 10:16:12 +0000 (11:16 +0100)
commit3995881b0f722cde317c06a098a11d20a9805ee9
tree86469255a3d41b4f2f7d1b0997e176e07c479e53
parent3865880138108e50cc7ca3cc5fde1fd41dfd6000
ext4: fix in-superblock mount options processing

commit 5aee0f8a3f42c94c5012f1673420aee96315925a upstream.

Fix a large number of problems with how we handle mount options in the
superblock.  For one, if the string in the superblock is long enough
that it is not null terminated, we could run off the end of the string
and try to interpret superblocks fields as characters.  It's unlikely
this will cause a security problem, but it could result in an invalid
parse.  Also, parse_options is destructive to the string, so in some
cases if there is a comma-separated string, it would be modified in
the superblock.  (Fortunately it only happens on file systems with a
1k block size.)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/super.c