Amir Goldstein 03fedf9359 ovl: skip getxattr of security labels
When inode has no listxattr op of its own (e.g. squashfs) vfs_listxattr
calls the LSM inode_listsecurity hooks to list the xattrs that LSMs will
intercept in inode_getxattr hooks.

When selinux LSM is installed but not initialized, it will list the
security.selinux xattr in inode_listsecurity, but will not intercept it
in inode_getxattr.  This results in -ENODATA for a getxattr call for an
xattr returned by listxattr.

This situation was manifested as overlayfs failure to copy up lower
files from squashfs when selinux is built-in but not initialized,
because ovl_copy_xattr() iterates the lower inode xattrs by
vfs_listxattr() and vfs_getxattr().

ovl_copy_xattr() skips copy up of security labels that are indentified by
inode_copy_up_xattr LSM hooks, but it does that after vfs_getxattr().
Since we are not going to copy them, skip vfs_getxattr() of the security
labels.

Reported-by: Michael Labriola <michael.d.labriola@gmail.com>
Tested-by: Michael Labriola <michael.d.labriola@gmail.com>
Link: https://lore.kernel.org/linux-unionfs/2nv9d47zt7.fsf@aldarion.sourceruckus.org/
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2021-01-28 10:22:48 +01:00
..
2020-12-21 10:28:02 -08:00
2021-01-11 14:18:56 -08:00
2020-12-17 11:18:00 -08:00
2021-01-15 14:54:24 -08:00
2020-12-17 11:18:00 -08:00
2020-12-10 15:33:14 +01:00
2021-01-11 11:35:46 -08:00
2020-12-17 13:22:17 -08:00
\n
2020-12-17 11:00:37 -08:00
2020-09-10 14:03:31 -07:00
2020-12-18 12:50:18 -08:00
2021-01-04 09:06:42 +09:00
2020-12-16 12:57:51 -08:00
2020-12-15 22:46:19 -08:00
\n
2020-10-15 15:03:10 -07:00
2020-12-19 11:18:38 -08:00
2020-08-04 21:02:38 -04:00
2020-12-16 12:57:51 -08:00
2020-07-31 08:16:01 +02:00
2020-08-07 11:33:24 -07:00
2020-12-17 11:18:00 -08:00
2020-10-23 11:33:41 -07:00
2020-08-19 14:14:19 +02:00
2020-12-01 14:53:39 -07:00
2020-10-23 11:33:41 -07:00
2020-07-31 08:16:00 +02:00
2020-10-24 12:40:18 -07:00
2020-09-26 22:55:05 -04:00
2020-12-01 14:53:39 -07:00
2020-12-01 14:53:39 -07:00
2020-06-09 15:40:50 -07:00
2020-07-31 08:16:01 +02:00