UPSTREAM: ext4: do not allow external inodes for inline data

commit 117166efb1ee8f13c38f9e96b258f16d4923f888 upstream.

The inline data feature was implemented before we added support for
external inodes for xattrs.  It makes no sense to support that
combination, but the problem is that there are a number of extended
attribute checks that are skipped if e_value_inum is non-zero.

Unfortunately, the inline data code is completely e_value_inum
unaware, and attempts to interpret the xattr fields as if it were an
inline xattr --- at which point, Hilarty Ensues.

This addresses CVE-2018-11412.

https://bugzilla.kernel.org/show_bug.cgi?id=199803

BUG=chromium:857017
TEST=Run image through ext4 file system tests

Change-Id: I65d201d0ba3a03ce5ff98bfe45d394c857f82cac
Reported-by: Jann Horn <[email protected]>
Reviewed-by: Andreas Dilger <[email protected]>
Signed-off-by: Theodore Ts'o <[email protected]>
Fixes: e50e5129f384 ("ext4: xattr-in-inode support")
Cc: [email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Reviewed-on: https://chromium-review.googlesource.com/1120875
Reviewed-by: Guenter Roeck <[email protected]>
Commit-Queue: Guenter Roeck <[email protected]>
Tested-by: Guenter Roeck <[email protected]>
1 file changed