ext4: fix in-superblock mount options processing
authorTheodore Ts'o <tytso@mit.edu>
Fri, 18 Nov 2016 18:24:26 +0000 (13:24 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 18 Nov 2016 18:24:26 +0000 (13:24 -0500)
commit5aee0f8a3f42c94c5012f1673420aee96315925a
treef483dee5f756f7a60cb3e2dc62a6bec7a37933f6
parent9e47a4c9fc58032ee135bf76516809c7624b1551
ext4: fix in-superblock mount options processing

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>
Cc: stable@vger.kernel.org
fs/ext4/super.c