ext4: fix in-superblock mount options processing
authorTheodore Ts'o <tytso@mit.edu>
Fri, 18 Nov 2016 18:24:26 +0000 (13:24 -0500)
committerWilly Tarreau <w@1wt.eu>
Mon, 19 Jun 2017 18:28:15 +0000 (20:28 +0200)
commitbd652ad14e9b9839f05f95117a00906af97b833f
tree6dbb30b43c961eaf0d01735d798bddd31109064e
parent408d8245b80b5426d670de4b4ec60f24b05eb0ef
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: Willy Tarreau <w@1wt.eu>
fs/ext4/super.c