From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Salyzyn Subject: [PATCH v13 4/5] overlayfs: internal getxattr operations without sepolicy checking Date: Wed, 31 Jul 2019 09:57:59 -0700 Message-ID: <20190731165803.4755-5-salyzyn@android.com> References: <20190731165803.4755-1-salyzyn@android.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <20190731165803.4755-1-salyzyn@android.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: cluster-devel-bounces@redhat.com Errors-To: cluster-devel-bounces@redhat.com To: linux-kernel@vger.kernel.org Cc: Latchesar Ionkov , Dave Kleikamp , jfs-discussion@lists.sourceforge.net, Randy Dunlap , linux-doc@vger.kernel.org, Martin Brandenburg , samba-technical@lists.samba.org, Dominique Martinet , Amir Goldstein , David Howells , Chris Mason , "David S . Miller" , Andreas Dilger , ocfs2-devel@oss.oracle.com, netdev@vger.kernel.org, Tyler Hicks , linux-afs@lists.infradead.org, Mike Marshall , linux-xfs@vger.kernel.org, Sage Weil , Jonathan Corbet , Richard Weinberger , Mark Fasheh , devel@lists.orangefs.org, Hugh Dickins , linux-security-module@vger List-Id: ceph-devel.vger.kernel.org Check impure, opaque, origin & meta xattr with no sepolicy audit (using __vfs_getxattr) since these operations are internal to overlayfs operations and do not disclose any data. This became an issue for credential override off since sys_admin would have been required by the caller; whereas would have been inherently present for the creator since it performed the mount. This is a change in operations since we do not check in the new ovl_do_vfs_getxattr function if the credential override is off or not. Reasoning is that the sepolicy check is unnecessary overhead, especially since the check can be expensive. Because for override credentials off, this affects _everyone_ that underneath performs private xattr calls without the appropriate sepolicy permissions and sys_admin capability. Providing blanket support for sys_admin would be bad for all possible callers. For the override credentials on, this will affect only the mounter, should it lack sepolicy permissions. Not considered a security problem since mounting by definition has sys_admin capabilities, but sepolicy contexts would still need to be crafted. It should be noted that there is precedence, __vfs_getxattr is used in other filesystems for their own internal trusted xattr management. Signed-off-by: Mark Salyzyn Cc: Miklos Szeredi Cc: Jonathan Corbet Cc: Vivek Goyal Cc: Eric W. Biederman Cc: Amir Goldstein Cc: Randy Dunlap Cc: Stephen Smalley Cc: linux-unionfs@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: kernel-team@android.com Cc: Eric Van Hensbergen Cc: Latchesar Ionkov Cc: Dominique Martinet Cc: David Howells Cc: Chris Mason Cc: Josef Bacik Cc: David Sterba Cc: Jeff Layton Cc: Sage Weil Cc: Ilya Dryomov Cc: Steve French Cc: Tyler Hicks Cc: Jan Kara Cc: Theodore Ts'o Cc: Andreas Dilger Cc: Jaegeuk Kim Cc: Chao Yu Cc: Bob Peterson Cc: Andreas Gruenbacher Cc: David Woodhouse Cc: Richard Weinberger Cc: Dave Kleikamp Cc: Greg Kroah-Hartman Cc: Tejun Heo Cc: Trond Myklebust Cc: Anna Schumaker Cc: Mark Fasheh Cc: Joel Becker Cc: Joseph Qi Cc: Mike Marshall Cc: Martin Brandenburg Cc: Alexander Viro Cc: Phillip Lougher Cc: Darrick J. Wong Cc: linux-xfs@vger.kernel.org Cc: Hugh Dickins Cc: David S. Miller Cc: Andrew Morton Cc: Mathieu Malaterre Cc: Ernesto A. Fernández Cc: Vyacheslav Dubeyko Cc: v9fs-developer@lists.sourceforge.net Cc: linux-afs@lists.infradead.org Cc: linux-btrfs@vger.kernel.org Cc: ceph-devel@vger.kernel.org Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Cc: ecryptfs@vger.kernel.org Cc: linux-ext4@vger.kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-fsdevel@vger.kernel.org Cc: cluster-devel@redhat.com Cc: linux-mtd@lists.infradead.org Cc: jfs-discussion@lists.sourceforge.net Cc: linux-nfs@vger.kernel.org Cc: ocfs2-devel@oss.oracle.com Cc: devel@lists.orangefs.org Cc: reiserfs-devel@vger.kernel.org Cc: linux-mm@kvack.org Cc: netdev@vger.kernel.org Cc: linux-security-module@vger.kernel.org Cc: stable@vger.kernel.org # 4.4, 4.9, 4.14 & 4.19 --- v13 - rebase to use __vfs_getxattr flags option v12 - rebase v11 - switch name to ovl_do_vfs_getxattr, fortify comment v10 - added to patch series --- fs/overlayfs/namei.c | 12 +++++++----- fs/overlayfs/overlayfs.h | 2 ++ fs/overlayfs/util.c | 25 ++++++++++++++++--------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c index 9702f0d5309d..a4a452c489fa 100644 --- a/fs/overlayfs/namei.c +++ b/fs/overlayfs/namei.c @@ -106,10 +106,11 @@ int ovl_check_fh_len(struct ovl_fh *fh, int fh_len) static struct ovl_fh *ovl_get_fh(struct dentry *dentry, const char *name) { - int res, err; + ssize_t res; + int err; struct ovl_fh *fh = NULL; - res = vfs_getxattr(dentry, name, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, name, NULL, 0); if (res < 0) { if (res == -ENODATA || res == -EOPNOTSUPP) return NULL; @@ -123,7 +124,7 @@ static struct ovl_fh *ovl_get_fh(struct dentry *dentry, const char *name) if (!fh) return ERR_PTR(-ENOMEM); - res = vfs_getxattr(dentry, name, fh, res); + res = ovl_do_vfs_getxattr(dentry, name, fh, res); if (res < 0) goto fail; @@ -141,10 +142,11 @@ static struct ovl_fh *ovl_get_fh(struct dentry *dentry, const char *name) return NULL; fail: - pr_warn_ratelimited("overlayfs: failed to get origin (%i)\n", res); + pr_warn_ratelimited("overlayfs: failed to get origin (%zi)\n", res); goto out; invalid: - pr_warn_ratelimited("overlayfs: invalid origin (%*phN)\n", res, fh); + pr_warn_ratelimited("overlayfs: invalid origin (%*phN)\n", + (int)res, fh); goto out; } diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h index ab3d031c422b..9d26d8758513 100644 --- a/fs/overlayfs/overlayfs.h +++ b/fs/overlayfs/overlayfs.h @@ -205,6 +205,8 @@ int ovl_want_write(struct dentry *dentry); void ovl_drop_write(struct dentry *dentry); struct dentry *ovl_workdir(struct dentry *dentry); const struct cred *ovl_override_creds(struct super_block *sb); +ssize_t ovl_do_vfs_getxattr(struct dentry *dentry, const char *name, void *buf, + size_t size); struct super_block *ovl_same_sb(struct super_block *sb); int ovl_can_decode_fh(struct super_block *sb); struct dentry *ovl_indexdir(struct super_block *sb); diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c index f5678a3f8350..c588c0d66d8c 100644 --- a/fs/overlayfs/util.c +++ b/fs/overlayfs/util.c @@ -40,6 +40,13 @@ const struct cred *ovl_override_creds(struct super_block *sb) return override_creds(ofs->creator_cred); } +ssize_t ovl_do_vfs_getxattr(struct dentry *dentry, const char *name, void *buf, + size_t size) +{ + return __vfs_getxattr(dentry, d_inode(dentry), name, buf, size, + XATTR_NOSECURITY); +} + struct super_block *ovl_same_sb(struct super_block *sb) { struct ovl_fs *ofs = sb->s_fs_info; @@ -537,9 +544,9 @@ void ovl_copy_up_end(struct dentry *dentry) bool ovl_check_origin_xattr(struct dentry *dentry) { - int res; + ssize_t res; - res = vfs_getxattr(dentry, OVL_XATTR_ORIGIN, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, OVL_XATTR_ORIGIN, NULL, 0); /* Zero size value means "copied up but origin unknown" */ if (res >= 0) @@ -550,13 +557,13 @@ bool ovl_check_origin_xattr(struct dentry *dentry) bool ovl_check_dir_xattr(struct dentry *dentry, const char *name) { - int res; + ssize_t res; char val; if (!d_is_dir(dentry)) return false; - res = vfs_getxattr(dentry, name, &val, 1); + res = ovl_do_vfs_getxattr(dentry, name, &val, 1); if (res == 1 && val == 'y') return true; @@ -837,13 +844,13 @@ int ovl_lock_rename_workdir(struct dentry *workdir, struct dentry *upperdir) /* err < 0, 0 if no metacopy xattr, 1 if metacopy xattr found */ int ovl_check_metacopy_xattr(struct dentry *dentry) { - int res; + ssize_t res; /* Only regular files can have metacopy xattr */ if (!S_ISREG(d_inode(dentry)->i_mode)) return 0; - res = vfs_getxattr(dentry, OVL_XATTR_METACOPY, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, OVL_XATTR_METACOPY, NULL, 0); if (res < 0) { if (res == -ENODATA || res == -EOPNOTSUPP) return 0; @@ -852,7 +859,7 @@ int ovl_check_metacopy_xattr(struct dentry *dentry) return 1; out: - pr_warn_ratelimited("overlayfs: failed to get metacopy (%i)\n", res); + pr_warn_ratelimited("overlayfs: failed to get metacopy (%zi)\n", res); return res; } @@ -878,7 +885,7 @@ ssize_t ovl_getxattr(struct dentry *dentry, char *name, char **value, ssize_t res; char *buf = NULL; - res = vfs_getxattr(dentry, name, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, name, NULL, 0); if (res < 0) { if (res == -ENODATA || res == -EOPNOTSUPP) return -ENODATA; @@ -890,7 +897,7 @@ ssize_t ovl_getxattr(struct dentry *dentry, char *name, char **value, if (!buf) return -ENOMEM; - res = vfs_getxattr(dentry, name, buf, res); + res = ovl_do_vfs_getxattr(dentry, name, buf, res); if (res < 0) goto fail; } -- 2.22.0.770.g0f2c4a37fd-goog From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Salyzyn Date: Wed, 31 Jul 2019 09:57:59 -0700 Subject: [Cluster-devel] [PATCH v13 4/5] overlayfs: internal getxattr operations without sepolicy checking In-Reply-To: <20190731165803.4755-1-salyzyn@android.com> References: <20190731165803.4755-1-salyzyn@android.com> Message-ID: <20190731165803.4755-5-salyzyn@android.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Check impure, opaque, origin & meta xattr with no sepolicy audit (using __vfs_getxattr) since these operations are internal to overlayfs operations and do not disclose any data. This became an issue for credential override off since sys_admin would have been required by the caller; whereas would have been inherently present for the creator since it performed the mount. This is a change in operations since we do not check in the new ovl_do_vfs_getxattr function if the credential override is off or not. Reasoning is that the sepolicy check is unnecessary overhead, especially since the check can be expensive. Because for override credentials off, this affects _everyone_ that underneath performs private xattr calls without the appropriate sepolicy permissions and sys_admin capability. Providing blanket support for sys_admin would be bad for all possible callers. For the override credentials on, this will affect only the mounter, should it lack sepolicy permissions. Not considered a security problem since mounting by definition has sys_admin capabilities, but sepolicy contexts would still need to be crafted. It should be noted that there is precedence, __vfs_getxattr is used in other filesystems for their own internal trusted xattr management. Signed-off-by: Mark Salyzyn Cc: Miklos Szeredi Cc: Jonathan Corbet Cc: Vivek Goyal Cc: Eric W. Biederman Cc: Amir Goldstein Cc: Randy Dunlap Cc: Stephen Smalley Cc: linux-unionfs at vger.kernel.org Cc: linux-doc at vger.kernel.org Cc: linux-kernel at vger.kernel.org Cc: kernel-team at android.com Cc: Eric Van Hensbergen Cc: Latchesar Ionkov Cc: Dominique Martinet Cc: David Howells Cc: Chris Mason Cc: Josef Bacik Cc: David Sterba Cc: Jeff Layton Cc: Sage Weil Cc: Ilya Dryomov Cc: Steve French Cc: Tyler Hicks Cc: Jan Kara Cc: Theodore Ts'o Cc: Andreas Dilger Cc: Jaegeuk Kim Cc: Chao Yu Cc: Bob Peterson Cc: Andreas Gruenbacher Cc: David Woodhouse Cc: Richard Weinberger Cc: Dave Kleikamp Cc: Greg Kroah-Hartman Cc: Tejun Heo Cc: Trond Myklebust Cc: Anna Schumaker Cc: Mark Fasheh Cc: Joel Becker Cc: Joseph Qi Cc: Mike Marshall Cc: Martin Brandenburg Cc: Alexander Viro Cc: Phillip Lougher Cc: Darrick J. Wong Cc: linux-xfs at vger.kernel.org Cc: Hugh Dickins Cc: David S. Miller Cc: Andrew Morton Cc: Mathieu Malaterre Cc: Ernesto A. Fern?ndez Cc: Vyacheslav Dubeyko Cc: v9fs-developer at lists.sourceforge.net Cc: linux-afs at lists.infradead.org Cc: linux-btrfs at vger.kernel.org Cc: ceph-devel at vger.kernel.org Cc: linux-cifs at vger.kernel.org Cc: samba-technical at lists.samba.org Cc: ecryptfs at vger.kernel.org Cc: linux-ext4 at vger.kernel.org Cc: linux-f2fs-devel at lists.sourceforge.net Cc: linux-fsdevel at vger.kernel.org Cc: cluster-devel at redhat.com Cc: linux-mtd at lists.infradead.org Cc: jfs-discussion at lists.sourceforge.net Cc: linux-nfs at vger.kernel.org Cc: ocfs2-devel at oss.oracle.com Cc: devel at lists.orangefs.org Cc: reiserfs-devel at vger.kernel.org Cc: linux-mm at kvack.org Cc: netdev at vger.kernel.org Cc: linux-security-module at vger.kernel.org Cc: stable at vger.kernel.org # 4.4, 4.9, 4.14 & 4.19 --- v13 - rebase to use __vfs_getxattr flags option v12 - rebase v11 - switch name to ovl_do_vfs_getxattr, fortify comment v10 - added to patch series --- fs/overlayfs/namei.c | 12 +++++++----- fs/overlayfs/overlayfs.h | 2 ++ fs/overlayfs/util.c | 25 ++++++++++++++++--------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c index 9702f0d5309d..a4a452c489fa 100644 --- a/fs/overlayfs/namei.c +++ b/fs/overlayfs/namei.c @@ -106,10 +106,11 @@ int ovl_check_fh_len(struct ovl_fh *fh, int fh_len) static struct ovl_fh *ovl_get_fh(struct dentry *dentry, const char *name) { - int res, err; + ssize_t res; + int err; struct ovl_fh *fh = NULL; - res = vfs_getxattr(dentry, name, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, name, NULL, 0); if (res < 0) { if (res == -ENODATA || res == -EOPNOTSUPP) return NULL; @@ -123,7 +124,7 @@ static struct ovl_fh *ovl_get_fh(struct dentry *dentry, const char *name) if (!fh) return ERR_PTR(-ENOMEM); - res = vfs_getxattr(dentry, name, fh, res); + res = ovl_do_vfs_getxattr(dentry, name, fh, res); if (res < 0) goto fail; @@ -141,10 +142,11 @@ static struct ovl_fh *ovl_get_fh(struct dentry *dentry, const char *name) return NULL; fail: - pr_warn_ratelimited("overlayfs: failed to get origin (%i)\n", res); + pr_warn_ratelimited("overlayfs: failed to get origin (%zi)\n", res); goto out; invalid: - pr_warn_ratelimited("overlayfs: invalid origin (%*phN)\n", res, fh); + pr_warn_ratelimited("overlayfs: invalid origin (%*phN)\n", + (int)res, fh); goto out; } diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h index ab3d031c422b..9d26d8758513 100644 --- a/fs/overlayfs/overlayfs.h +++ b/fs/overlayfs/overlayfs.h @@ -205,6 +205,8 @@ int ovl_want_write(struct dentry *dentry); void ovl_drop_write(struct dentry *dentry); struct dentry *ovl_workdir(struct dentry *dentry); const struct cred *ovl_override_creds(struct super_block *sb); +ssize_t ovl_do_vfs_getxattr(struct dentry *dentry, const char *name, void *buf, + size_t size); struct super_block *ovl_same_sb(struct super_block *sb); int ovl_can_decode_fh(struct super_block *sb); struct dentry *ovl_indexdir(struct super_block *sb); diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c index f5678a3f8350..c588c0d66d8c 100644 --- a/fs/overlayfs/util.c +++ b/fs/overlayfs/util.c @@ -40,6 +40,13 @@ const struct cred *ovl_override_creds(struct super_block *sb) return override_creds(ofs->creator_cred); } +ssize_t ovl_do_vfs_getxattr(struct dentry *dentry, const char *name, void *buf, + size_t size) +{ + return __vfs_getxattr(dentry, d_inode(dentry), name, buf, size, + XATTR_NOSECURITY); +} + struct super_block *ovl_same_sb(struct super_block *sb) { struct ovl_fs *ofs = sb->s_fs_info; @@ -537,9 +544,9 @@ void ovl_copy_up_end(struct dentry *dentry) bool ovl_check_origin_xattr(struct dentry *dentry) { - int res; + ssize_t res; - res = vfs_getxattr(dentry, OVL_XATTR_ORIGIN, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, OVL_XATTR_ORIGIN, NULL, 0); /* Zero size value means "copied up but origin unknown" */ if (res >= 0) @@ -550,13 +557,13 @@ bool ovl_check_origin_xattr(struct dentry *dentry) bool ovl_check_dir_xattr(struct dentry *dentry, const char *name) { - int res; + ssize_t res; char val; if (!d_is_dir(dentry)) return false; - res = vfs_getxattr(dentry, name, &val, 1); + res = ovl_do_vfs_getxattr(dentry, name, &val, 1); if (res == 1 && val == 'y') return true; @@ -837,13 +844,13 @@ int ovl_lock_rename_workdir(struct dentry *workdir, struct dentry *upperdir) /* err < 0, 0 if no metacopy xattr, 1 if metacopy xattr found */ int ovl_check_metacopy_xattr(struct dentry *dentry) { - int res; + ssize_t res; /* Only regular files can have metacopy xattr */ if (!S_ISREG(d_inode(dentry)->i_mode)) return 0; - res = vfs_getxattr(dentry, OVL_XATTR_METACOPY, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, OVL_XATTR_METACOPY, NULL, 0); if (res < 0) { if (res == -ENODATA || res == -EOPNOTSUPP) return 0; @@ -852,7 +859,7 @@ int ovl_check_metacopy_xattr(struct dentry *dentry) return 1; out: - pr_warn_ratelimited("overlayfs: failed to get metacopy (%i)\n", res); + pr_warn_ratelimited("overlayfs: failed to get metacopy (%zi)\n", res); return res; } @@ -878,7 +885,7 @@ ssize_t ovl_getxattr(struct dentry *dentry, char *name, char **value, ssize_t res; char *buf = NULL; - res = vfs_getxattr(dentry, name, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, name, NULL, 0); if (res < 0) { if (res == -ENODATA || res == -EOPNOTSUPP) return -ENODATA; @@ -890,7 +897,7 @@ ssize_t ovl_getxattr(struct dentry *dentry, char *name, char **value, if (!buf) return -ENOMEM; - res = vfs_getxattr(dentry, name, buf, res); + res = ovl_do_vfs_getxattr(dentry, name, buf, res); if (res < 0) goto fail; } -- 2.22.0.770.g0f2c4a37fd-goog From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Salyzyn Subject: [PATCH v13 4/5] overlayfs: internal getxattr operations without sepolicy checking Date: Wed, 31 Jul 2019 09:57:59 -0700 Message-ID: <20190731165803.4755-5-salyzyn@android.com> References: <20190731165803.4755-1-salyzyn@android.com> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190731165803.4755-1-salyzyn@android.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: cluster-devel-bounces@redhat.com Errors-To: cluster-devel-bounces@redhat.com Content-Type: text/plain; charset="macroman" To: linux-kernel@vger.kernel.org Cc: Latchesar Ionkov , Dave Kleikamp , jfs-discussion@lists.sourceforge.net, Randy Dunlap , linux-doc@vger.kernel.org, Martin Brandenburg , samba-technical@lists.samba.org, Dominique Martinet , Amir Goldstein , David Howells , Chris Mason , "David S . Miller" , Andreas Dilger , ocfs2-devel@oss.oracle.com, netdev@vger.kernel.org, Tyler Hicks , linux-afs@lists.infradead.org, Mike Marshall , linux-xfs@vger.kernel.org, Sage Weil , Jonathan Corbet , Richard Weinberger , Mark Fasheh , devel@lists.orangefs.org, Hugh Dickins , linux-security-module@vger Q2hlY2sgaW1wdXJlLCBvcGFxdWUsIG9yaWdpbiAmIG1ldGEgeGF0dHIgd2l0aCBubyBzZXBvbGlj eSBhdWRpdAoodXNpbmcgX192ZnNfZ2V0eGF0dHIpIHNpbmNlIHRoZXNlIG9wZXJhdGlvbnMgYXJl IGludGVybmFsIHRvCm92ZXJsYXlmcyBvcGVyYXRpb25zIGFuZCBkbyBub3QgZGlzY2xvc2UgYW55 IGRhdGEuICBUaGlzIGJlY2FtZQphbiBpc3N1ZSBmb3IgY3JlZGVudGlhbCBvdmVycmlkZSBvZmYg c2luY2Ugc3lzX2FkbWluIHdvdWxkIGhhdmUKYmVlbiByZXF1aXJlZCBieSB0aGUgY2FsbGVyOyB3 aGVyZWFzIHdvdWxkIGhhdmUgYmVlbiBpbmhlcmVudGx5CnByZXNlbnQgZm9yIHRoZSBjcmVhdG9y IHNpbmNlIGl0IHBlcmZvcm1lZCB0aGUgbW91bnQuCgpUaGlzIGlzIGEgY2hhbmdlIGluIG9wZXJh dGlvbnMgc2luY2Ugd2UgZG8gbm90IGNoZWNrIGluIHRoZSBuZXcKb3ZsX2RvX3Zmc19nZXR4YXR0 ciBmdW5jdGlvbiBpZiB0aGUgY3JlZGVudGlhbCBvdmVycmlkZSBpcyBvZmYgb3IKbm90LiAgUmVh c29uaW5nIGlzIHRoYXQgdGhlIHNlcG9saWN5IGNoZWNrIGlzIHVubmVjZXNzYXJ5IG92ZXJoZWFk LAplc3BlY2lhbGx5IHNpbmNlIHRoZSBjaGVjayBjYW4gYmUgZXhwZW5zaXZlLgoKQmVjYXVzZSBm b3Igb3ZlcnJpZGUgY3JlZGVudGlhbHMgb2ZmLCB0aGlzIGFmZmVjdHMgX2V2ZXJ5b25lXyB0aGF0 CnVuZGVybmVhdGggcGVyZm9ybXMgcHJpdmF0ZSB4YXR0ciBjYWxscyB3aXRob3V0IHRoZSBhcHBy b3ByaWF0ZQpzZXBvbGljeSBwZXJtaXNzaW9ucyBhbmQgc3lzX2FkbWluIGNhcGFiaWxpdHkuICBQ cm92aWRpbmcgYmxhbmtldApzdXBwb3J0IGZvciBzeXNfYWRtaW4gd291bGQgYmUgYmFkIGZvciBh bGwgcG9zc2libGUgY2FsbGVycy4KCkZvciB0aGUgb3ZlcnJpZGUgY3JlZGVudGlhbHMgb24sIHRo aXMgd2lsbCBhZmZlY3Qgb25seSB0aGUgbW91bnRlciwKc2hvdWxkIGl0IGxhY2sgc2Vwb2xpY3kg cGVybWlzc2lvbnMuIE5vdCBjb25zaWRlcmVkIGEgc2VjdXJpdHkKcHJvYmxlbSBzaW5jZSBtb3Vu dGluZyBieSBkZWZpbml0aW9uIGhhcyBzeXNfYWRtaW4gY2FwYWJpbGl0aWVzLApidXQgc2Vwb2xp Y3kgY29udGV4dHMgd291bGQgc3RpbGwgbmVlZCB0byBiZSBjcmFmdGVkLgoKSXQgc2hvdWxkIGJl IG5vdGVkIHRoYXQgdGhlcmUgaXMgcHJlY2VkZW5jZSwgX192ZnNfZ2V0eGF0dHIgaXMgdXNlZApp biBvdGhlciBmaWxlc3lzdGVtcyBmb3IgdGhlaXIgb3duIGludGVybmFsIHRydXN0ZWQgeGF0dHIg bWFuYWdlbWVudC4KClNpZ25lZC1vZmYtYnk6IE1hcmsgU2FseXp5biA8c2FseXp5bkBhbmRyb2lk LmNvbT4KQ2M6IE1pa2xvcyBTemVyZWRpIDxtaWtsb3NAc3plcmVkaS5odT4KQ2M6IEpvbmF0aGFu IENvcmJldCA8Y29yYmV0QGx3bi5uZXQ+CkNjOiBWaXZlayBHb3lhbCA8dmdveWFsQHJlZGhhdC5j b20+CkNjOiBFcmljIFcuIEJpZWRlcm1hbiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpDYzogQW1p ciBHb2xkc3RlaW4gPGFtaXI3M2lsQGdtYWlsLmNvbT4KQ2M6IFJhbmR5IER1bmxhcCA8cmR1bmxh cEBpbmZyYWRlYWQub3JnPgpDYzogU3RlcGhlbiBTbWFsbGV5IDxzZHNAdHljaG8ubnNhLmdvdj4K Q2M6IGxpbnV4LXVuaW9uZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1kb2NAdmdlci5rZXJu ZWwub3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCkNjOiBrZXJuZWwtdGVhbUBh bmRyb2lkLmNvbQpDYzogRXJpYyBWYW4gSGVuc2JlcmdlbiA8ZXJpY3ZoQGdtYWlsLmNvbT4KQ2M6 IExhdGNoZXNhciBJb25rb3YgPGx1Y2hvQGlvbmtvdi5uZXQ+CkNjOiBEb21pbmlxdWUgTWFydGlu ZXQgPGFzbWFkZXVzQGNvZGV3cmVjay5vcmc+CkNjOiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0By ZWRoYXQuY29tPgpDYzogQ2hyaXMgTWFzb24gPGNsbUBmYi5jb20+CkNjOiBKb3NlZiBCYWNpayA8 am9zZWZAdG94aWNwYW5kYS5jb20+CkNjOiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ CkNjOiBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPgpDYzogU2FnZSBXZWlsIDxzYWdl QHJlZGhhdC5jb20+CkNjOiBJbHlhIERyeW9tb3YgPGlkcnlvbW92QGdtYWlsLmNvbT4KQ2M6IFN0 ZXZlIEZyZW5jaCA8c2ZyZW5jaEBzYW1iYS5vcmc+CkNjOiBUeWxlciBIaWNrcyA8dHloaWNrc0Bj YW5vbmljYWwuY29tPgpDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jb20+CkNjOiBUaGVvZG9yZSBU cydvIDx0eXRzb0BtaXQuZWR1PgpDYzogQW5kcmVhcyBEaWxnZXIgPGFkaWxnZXIua2VybmVsQGRp bGdlci5jYT4KQ2M6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+CkNjOiBDaGFvIFl1 IDx5dWNoYW8wQGh1YXdlaS5jb20+CkNjOiBCb2IgUGV0ZXJzb24gPHJwZXRlcnNvQHJlZGhhdC5j b20+CkNjOiBBbmRyZWFzIEdydWVuYmFjaGVyIDxhZ3J1ZW5iYUByZWRoYXQuY29tPgpDYzogRGF2 aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgpDYzogUmljaGFyZCBXZWluYmVyZ2Vy IDxyaWNoYXJkQG5vZC5hdD4KQ2M6IERhdmUgS2xlaWthbXAgPHNoYWdneUBrZXJuZWwub3JnPgpD YzogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KQ2M6IFRl anVuIEhlbyA8dGpAa2VybmVsLm9yZz4KQ2M6IFRyb25kIE15a2xlYnVzdCA8dHJvbmQubXlrbGVi dXN0QGhhbW1lcnNwYWNlLmNvbT4KQ2M6IEFubmEgU2NodW1ha2VyIDxhbm5hLnNjaHVtYWtlckBu ZXRhcHAuY29tPgpDYzogTWFyayBGYXNoZWggPG1hcmtAZmFzaGVoLmNvbT4KQ2M6IEpvZWwgQmVj a2VyIDxqbGJlY0BldmlscGxhbi5vcmc+CkNjOiBKb3NlcGggUWkgPGpvc2VwaC5xaUBsaW51eC5h bGliYWJhLmNvbT4KQ2M6IE1pa2UgTWFyc2hhbGwgPGh1YmNhcEBvbW5pYm9uZC5jb20+CkNjOiBN YXJ0aW4gQnJhbmRlbmJ1cmcgPG1hcnRpbkBvbW5pYm9uZC5jb20+CkNjOiBBbGV4YW5kZXIgVmly byA8dmlyb0B6ZW5pdi5saW51eC5vcmcudWs+CkNjOiBQaGlsbGlwIExvdWdoZXIgPHBoaWxsaXBA c3F1YXNoZnMub3JnLnVrPgpDYzogRGFycmljayBKLiBXb25nIDxkYXJyaWNrLndvbmdAb3JhY2xl LmNvbT4KQ2M6IGxpbnV4LXhmc0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IEh1Z2ggRGlja2lucyA8aHVn aGRAZ29vZ2xlLmNvbT4KQ2M6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K Q2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+CkNjOiBNYXRoaWV1 IE1hbGF0ZXJyZSA8bWFsYXRAZGViaWFuLm9yZz4KQ2M6IEVybmVzdG8gQS4gRmVybsOhbmRleiA8 ZXJuZXN0by5tbmQuZmVybmFuZGV6QGdtYWlsLmNvbT4KQ2M6IFZ5YWNoZXNsYXYgRHViZXlrbyA8 c2xhdmFAZHViZXlrby5jb20+CkNjOiB2OWZzLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQKQ2M6IGxpbnV4LWFmc0BsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1idHJmc0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGNlcGgtZGV2ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1jaWZz QHZnZXIua2VybmVsLm9yZwpDYzogc2FtYmEtdGVjaG5pY2FsQGxpc3RzLnNhbWJhLm9yZwpDYzog ZWNyeXB0ZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1leHQ0QHZnZXIua2VybmVsLm9yZwpD YzogbGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKQ2M6IGxpbnV4LWZzZGV2 ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBjbHVzdGVyLWRldmVsQHJlZGhhdC5jb20KQ2M6IGxpbnV4 LW10ZEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBqZnMtZGlzY3Vzc2lvbkBsaXN0cy5zb3VyY2Vm b3JnZS5uZXQKQ2M6IGxpbnV4LW5mc0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IG9jZnMyLWRldmVsQG9z cy5vcmFjbGUuY29tCkNjOiBkZXZlbEBsaXN0cy5vcmFuZ2Vmcy5vcmcKQ2M6IHJlaXNlcmZzLWRl dmVsQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBuZXRkZXZAdmdl ci5rZXJuZWwub3JnCkNjOiBsaW51eC1zZWN1cml0eS1tb2R1bGVAdmdlci5rZXJuZWwub3JnCkNj OiBzdGFibGVAdmdlci5rZXJuZWwub3JnICMgNC40LCA0LjksIDQuMTQgJiA0LjE5Ci0tLQp2MTMg LSByZWJhc2UgdG8gdXNlIF9fdmZzX2dldHhhdHRyIGZsYWdzIG9wdGlvbgoKdjEyIC0gcmViYXNl Cgp2MTEgLSBzd2l0Y2ggbmFtZSB0byBvdmxfZG9fdmZzX2dldHhhdHRyLCBmb3J0aWZ5IGNvbW1l bnQKCnYxMCAtIGFkZGVkIHRvIHBhdGNoIHNlcmllcwotLS0KIGZzL292ZXJsYXlmcy9uYW1laS5j ICAgICB8IDEyICsrKysrKystLS0tLQogZnMvb3ZlcmxheWZzL292ZXJsYXlmcy5oIHwgIDIgKysK IGZzL292ZXJsYXlmcy91dGlsLmMgICAgICB8IDI1ICsrKysrKysrKysrKysrKystLS0tLS0tLS0K IDMgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZnMvb3ZlcmxheWZzL25hbWVpLmMgYi9mcy9vdmVybGF5ZnMvbmFtZWkuYwppbmRl eCA5NzAyZjBkNTMwOWQuLmE0YTQ1MmM0ODlmYSAxMDA2NDQKLS0tIGEvZnMvb3ZlcmxheWZzL25h bWVpLmMKKysrIGIvZnMvb3ZlcmxheWZzL25hbWVpLmMKQEAgLTEwNiwxMCArMTA2LDExIEBAIGlu dCBvdmxfY2hlY2tfZmhfbGVuKHN0cnVjdCBvdmxfZmggKmZoLCBpbnQgZmhfbGVuKQogCiBzdGF0 aWMgc3RydWN0IG92bF9maCAqb3ZsX2dldF9maChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0 IGNoYXIgKm5hbWUpCiB7Ci0JaW50IHJlcywgZXJyOworCXNzaXplX3QgcmVzOworCWludCBlcnI7 CiAJc3RydWN0IG92bF9maCAqZmggPSBOVUxMOwogCi0JcmVzID0gdmZzX2dldHhhdHRyKGRlbnRy eSwgbmFtZSwgTlVMTCwgMCk7CisJcmVzID0gb3ZsX2RvX3Zmc19nZXR4YXR0cihkZW50cnksIG5h bWUsIE5VTEwsIDApOwogCWlmIChyZXMgPCAwKSB7CiAJCWlmIChyZXMgPT0gLUVOT0RBVEEgfHwg cmVzID09IC1FT1BOT1RTVVBQKQogCQkJcmV0dXJuIE5VTEw7CkBAIC0xMjMsNyArMTI0LDcgQEAg c3RhdGljIHN0cnVjdCBvdmxfZmggKm92bF9nZXRfZmgoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj b25zdCBjaGFyICpuYW1lKQogCWlmICghZmgpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwog Ci0JcmVzID0gdmZzX2dldHhhdHRyKGRlbnRyeSwgbmFtZSwgZmgsIHJlcyk7CisJcmVzID0gb3Zs X2RvX3Zmc19nZXR4YXR0cihkZW50cnksIG5hbWUsIGZoLCByZXMpOwogCWlmIChyZXMgPCAwKQog CQlnb3RvIGZhaWw7CiAKQEAgLTE0MSwxMCArMTQyLDExIEBAIHN0YXRpYyBzdHJ1Y3Qgb3ZsX2Zo ICpvdmxfZ2V0X2ZoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSkKIAly ZXR1cm4gTlVMTDsKIAogZmFpbDoKLQlwcl93YXJuX3JhdGVsaW1pdGVkKCJvdmVybGF5ZnM6IGZh aWxlZCB0byBnZXQgb3JpZ2luICglaSlcbiIsIHJlcyk7CisJcHJfd2Fybl9yYXRlbGltaXRlZCgi b3ZlcmxheWZzOiBmYWlsZWQgdG8gZ2V0IG9yaWdpbiAoJXppKVxuIiwgcmVzKTsKIAlnb3RvIG91 dDsKIGludmFsaWQ6Ci0JcHJfd2Fybl9yYXRlbGltaXRlZCgib3ZlcmxheWZzOiBpbnZhbGlkIG9y aWdpbiAoJSpwaE4pXG4iLCByZXMsIGZoKTsKKwlwcl93YXJuX3JhdGVsaW1pdGVkKCJvdmVybGF5 ZnM6IGludmFsaWQgb3JpZ2luICglKnBoTilcbiIsCisJCQkgICAgKGludClyZXMsIGZoKTsKIAln b3RvIG91dDsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvb3ZlcmxheWZzL292ZXJsYXlmcy5oIGIvZnMv b3ZlcmxheWZzL292ZXJsYXlmcy5oCmluZGV4IGFiM2QwMzFjNDIyYi4uOWQyNmQ4NzU4NTEzIDEw MDY0NAotLS0gYS9mcy9vdmVybGF5ZnMvb3ZlcmxheWZzLmgKKysrIGIvZnMvb3ZlcmxheWZzL292 ZXJsYXlmcy5oCkBAIC0yMDUsNiArMjA1LDggQEAgaW50IG92bF93YW50X3dyaXRlKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSk7CiB2b2lkIG92bF9kcm9wX3dyaXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy eSk7CiBzdHJ1Y3QgZGVudHJ5ICpvdmxfd29ya2RpcihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwog Y29uc3Qgc3RydWN0IGNyZWQgKm92bF9vdmVycmlkZV9jcmVkcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiKTsKK3NzaXplX3Qgb3ZsX2RvX3Zmc19nZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnks IGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKmJ1ZiwKKwkJCSAgICBzaXplX3Qgc2l6ZSk7CiBzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKm92bF9zYW1lX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogaW50 IG92bF9jYW5fZGVjb2RlX2ZoKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogc3RydWN0IGRlbnRy eSAqb3ZsX2luZGV4ZGlyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwpkaWZmIC0tZ2l0IGEvZnMv b3ZlcmxheWZzL3V0aWwuYyBiL2ZzL292ZXJsYXlmcy91dGlsLmMKaW5kZXggZjU2NzhhM2Y4MzUw Li5jNTg4YzBkNjZkOGMgMTAwNjQ0Ci0tLSBhL2ZzL292ZXJsYXlmcy91dGlsLmMKKysrIGIvZnMv b3ZlcmxheWZzL3V0aWwuYwpAQCAtNDAsNiArNDAsMTMgQEAgY29uc3Qgc3RydWN0IGNyZWQgKm92 bF9vdmVycmlkZV9jcmVkcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCXJldHVybiBvdmVycmlk ZV9jcmVkcyhvZnMtPmNyZWF0b3JfY3JlZCk7CiB9CiAKK3NzaXplX3Qgb3ZsX2RvX3Zmc19nZXR4 YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKmJ1ZiwK KwkJCSAgICBzaXplX3Qgc2l6ZSkKK3sKKwlyZXR1cm4gX192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBk X2lub2RlKGRlbnRyeSksIG5hbWUsIGJ1Ziwgc2l6ZSwKKwkJCSAgICAgIFhBVFRSX05PU0VDVVJJ VFkpOworfQorCiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKm92bF9zYW1lX3NiKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IpCiB7CiAJc3RydWN0IG92bF9mcyAqb2ZzID0gc2ItPnNfZnNfaW5mbzsKQEAgLTUz Nyw5ICs1NDQsOSBAQCB2b2lkIG92bF9jb3B5X3VwX2VuZChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp CiAKIGJvb2wgb3ZsX2NoZWNrX29yaWdpbl94YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7 Ci0JaW50IHJlczsKKwlzc2l6ZV90IHJlczsKIAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnks IE9WTF9YQVRUUl9PUklHSU4sIE5VTEwsIDApOworCXJlcyA9IG92bF9kb192ZnNfZ2V0eGF0dHIo ZGVudHJ5LCBPVkxfWEFUVFJfT1JJR0lOLCBOVUxMLCAwKTsKIAogCS8qIFplcm8gc2l6ZSB2YWx1 ZSBtZWFucyAiY29waWVkIHVwIGJ1dCBvcmlnaW4gdW5rbm93biIgKi8KIAlpZiAocmVzID49IDAp CkBAIC01NTAsMTMgKzU1NywxMyBAQCBib29sIG92bF9jaGVja19vcmlnaW5feGF0dHIoc3RydWN0 IGRlbnRyeSAqZGVudHJ5KQogCiBib29sIG92bF9jaGVja19kaXJfeGF0dHIoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lKQogewotCWludCByZXM7CisJc3NpemVfdCByZXM7 CiAJY2hhciB2YWw7CiAKIAlpZiAoIWRfaXNfZGlyKGRlbnRyeSkpCiAJCXJldHVybiBmYWxzZTsK IAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnksIG5hbWUsICZ2YWwsIDEpOworCXJlcyA9IG92 bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1lLCAmdmFsLCAxKTsKIAlpZiAocmVzID09IDEg JiYgdmFsID09ICd5JykKIAkJcmV0dXJuIHRydWU7CiAKQEAgLTgzNywxMyArODQ0LDEzIEBAIGlu dCBvdmxfbG9ja19yZW5hbWVfd29ya2RpcihzdHJ1Y3QgZGVudHJ5ICp3b3JrZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICp1cHBlcmRpcikKIC8qIGVyciA8IDAsIDAgaWYgbm8gbWV0YWNvcHkgeGF0dHIsIDEg aWYgbWV0YWNvcHkgeGF0dHIgZm91bmQgKi8KIGludCBvdmxfY2hlY2tfbWV0YWNvcHlfeGF0dHIo c3RydWN0IGRlbnRyeSAqZGVudHJ5KQogewotCWludCByZXM7CisJc3NpemVfdCByZXM7CiAKIAkv KiBPbmx5IHJlZ3VsYXIgZmlsZXMgY2FuIGhhdmUgbWV0YWNvcHkgeGF0dHIgKi8KIAlpZiAoIVNf SVNSRUcoZF9pbm9kZShkZW50cnkpLT5pX21vZGUpKQogCQlyZXR1cm4gMDsKIAotCXJlcyA9IHZm c19nZXR4YXR0cihkZW50cnksIE9WTF9YQVRUUl9NRVRBQ09QWSwgTlVMTCwgMCk7CisJcmVzID0g b3ZsX2RvX3Zmc19nZXR4YXR0cihkZW50cnksIE9WTF9YQVRUUl9NRVRBQ09QWSwgTlVMTCwgMCk7 CiAJaWYgKHJlcyA8IDApIHsKIAkJaWYgKHJlcyA9PSAtRU5PREFUQSB8fCByZXMgPT0gLUVPUE5P VFNVUFApCiAJCQlyZXR1cm4gMDsKQEAgLTg1Miw3ICs4NTksNyBAQCBpbnQgb3ZsX2NoZWNrX21l dGFjb3B5X3hhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAogCXJldHVybiAxOwogb3V0Ogot CXByX3dhcm5fcmF0ZWxpbWl0ZWQoIm92ZXJsYXlmczogZmFpbGVkIHRvIGdldCBtZXRhY29weSAo JWkpXG4iLCByZXMpOworCXByX3dhcm5fcmF0ZWxpbWl0ZWQoIm92ZXJsYXlmczogZmFpbGVkIHRv IGdldCBtZXRhY29weSAoJXppKVxuIiwgcmVzKTsKIAlyZXR1cm4gcmVzOwogfQogCkBAIC04Nzgs NyArODg1LDcgQEAgc3NpemVfdCBvdmxfZ2V0eGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj aGFyICpuYW1lLCBjaGFyICoqdmFsdWUsCiAJc3NpemVfdCByZXM7CiAJY2hhciAqYnVmID0gTlVM TDsKIAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnksIG5hbWUsIE5VTEwsIDApOworCXJlcyA9 IG92bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1lLCBOVUxMLCAwKTsKIAlpZiAocmVzIDwg MCkgewogCQlpZiAocmVzID09IC1FTk9EQVRBIHx8IHJlcyA9PSAtRU9QTk9UU1VQUCkKIAkJCXJl dHVybiAtRU5PREFUQTsKQEAgLTg5MCw3ICs4OTcsNyBAQCBzc2l6ZV90IG92bF9nZXR4YXR0cihz dHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNoYXIgKm5hbWUsIGNoYXIgKip2YWx1ZSwKIAkJaWYgKCFi dWYpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAotCQlyZXMgPSB2ZnNfZ2V0eGF0dHIoZGVudHJ5LCBu YW1lLCBidWYsIHJlcyk7CisJCXJlcyA9IG92bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1l LCBidWYsIHJlcyk7CiAJCWlmIChyZXMgPCAwKQogCQkJZ290byBmYWlsOwogCX0KLS0gCjIuMjIu MC43NzAuZzBmMmM0YTM3ZmQtZ29vZwoK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DEDA0C32751 for ; Wed, 31 Jul 2019 17:20:10 +0000 (UTC) Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9E7CC206A2; Wed, 31 Jul 2019 17:20:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=lists.sourceforge.net header.i=@lists.sourceforge.net header.b="Dr7MmIpw"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sourceforge.net header.i=@sourceforge.net header.b="Mayoj0sh"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sf.net header.i=@sf.net header.b="btEcMfTv"; dkim=neutral (0-bit key) header.d=android.com header.i=@android.com header.b="fmiQSh9y" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9E7CC206A2 Authentication-Results: mail.kernel.org; dmarc=pass (p=none dis=none) header.from=lists.sourceforge.net Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linux-f2fs-devel-bounces@lists.sourceforge.net DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:Cc: Reply-To:From:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:MIME-Version:References:In-Reply-To: Message-Id:Date:To:Sender:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=EFjpPWKGDkC6mNew5iZeRTCaeUkl7YG8yV7PMt5Q8cw=; b=Dr7MmIpwMbWs4EG3apaMzTH8R saAazmJBrq49xrzX5TBDZ3FKh0fpEtrwgCFwjoyn+tSB7+DZe6V6O0rt2CzE+n1hT0Sf0HNNfYsI4 OhfASjR3hIGlVIwk32bt5zPvqR4ngHVU8YwLcgzOKNdUnorJblA6FQrclian+FBaE81jQ=; Received: from [127.0.0.1] (helo=sfs-ml-2.v29.lw.sourceforge.com) by sfs-ml-2.v29.lw.sourceforge.com with esmtp (Exim 4.90_1) (envelope-from ) id 1hssGo-00055C-5a; Wed, 31 Jul 2019 17:20:10 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hssGn-000556-Hf for linux-f2fs-devel@lists.sourceforge.net; Wed, 31 Jul 2019 17:20:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:MIME-Version :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=p6RSnHZej7dMZQfosYc1rQOAXMnG8HF3vzAcSS3MG98=; b=Mayoj0shkEHRF3VeQp3v3vCLbg pMNGIdxqIzo1DS0uckxNaFwK+20efe88B09joh90jN+z2UkqaZj3Anw03LCRGa5z65GHBsH+nzenK 0F3AGRNGSSjAmEbcWCLxPqJ+/TvfwPyLiEpcm3MWW6YueytZnj5fC2pmSilUpgQfaSdQ=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=p6RSnHZej7dMZQfosYc1rQOAXMnG8HF3vzAcSS3MG98=; b=btEcMfTvlsqcCh5ZXlpnTuiD+2 zdecsGBJetphUAn++MZNd+1t+pSbiCKpjXuTp+eaR3hdRcK+38TQARVDMZtySMBQJ7zQBNCD96Zyu MOVSVj1iodtk5G6q8zKkqqsvKYEfAv3iBpC2ID8TeK6kEokD4UYNjXJGPwfdltTX3mHo=; Received: from mail-pl1-f194.google.com ([209.85.214.194]) by sfi-mx-4.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.90_1) id 1hssGh-005TgH-LI for linux-f2fs-devel@lists.sourceforge.net; Wed, 31 Jul 2019 17:20:09 +0000 Received: by mail-pl1-f194.google.com with SMTP id c2so30746635plz.13 for ; Wed, 31 Jul 2019 10:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p6RSnHZej7dMZQfosYc1rQOAXMnG8HF3vzAcSS3MG98=; b=fmiQSh9yv929qF/IP6Uym2pEsxsKnDznkX0VjJ8cIh+7NzZrkbqvPCG3bssMygeAbK NmkNsix4uTqi91gMmHKksLpNQD7b0D1A9bda6aSayMw9sPfvhUAJO63BySMzz39Ednc6 +iWQAfEEJ8NQ6QfBslJvC3DyBQUS6s3R1R0XZUZMZgKOLtN+EIac6ejHjwc9qbdb5uvz eiCuyG0A6yFWZLw5lHrPP3O5DsRBGnqxHkq8vNdP6QJnUoh2+fIqC3yhPbsH+qEpXwib mUbx7N0k3Aa9YqKq/FSCQYABcvQoWcmd3n7QaLFSg3+9u/w9YuhZ+4mMF/9YdnWbfIFZ JhFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p6RSnHZej7dMZQfosYc1rQOAXMnG8HF3vzAcSS3MG98=; b=skFS5PF3Kg6hikE6wUHAu4XFYvWU2u1kKqZqs9J4rBuk76AiGdij8duEs5H0ypD4dt 9pcp+l87A4xueBXDJRAfnBhu781rH2jKnJQsMHJ+iFy1entm7+7N4REUqxjKstyYkGfu 41fMIKv9QdAcPWqWrSRhS2pPbXFbDLftG4yQer9C8x3Coh09KyL0ZQgV2WDwQdhgF0B+ 2o6m9cbD5gJC9bkoU0uUexWGmUeTzcrv1k+wuvKRyZ1miIsIhP4/V2OiggGBu2ExEgpx U56O7N8VJtlzJdEE8nUzLq9O3zvZaNXfobWJREREL9hqmC3G1NSf3pPymyvvWqjoryxR URrQ== X-Gm-Message-State: APjAAAWAJuA9ITRPVdAVhSr+jS2D1QittVczajgr6N0pDQEsMDGopnFr fguGsREdEemhsVQlb0/9PEo= X-Google-Smtp-Source: APXvYqyB1157MtzfYeWJ1dBcWuMDKOUJgOnzq0VC5i1SowoHtyq/iVzFaALo7AjUpN0O6A6XZS+NfQ== X-Received: by 2002:a17:902:9a85:: with SMTP id w5mr121452633plp.221.1564592333814; Wed, 31 Jul 2019 09:58:53 -0700 (PDT) Received: from nebulus.mtv.corp.google.com ([2620:15c:211:200:5404:91ba:59dc:9400]) by smtp.gmail.com with ESMTPSA id f72sm2245954pjg.10.2019.07.31.09.58.51 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Wed, 31 Jul 2019 09:58:53 -0700 (PDT) To: linux-kernel@vger.kernel.org Date: Wed, 31 Jul 2019 09:57:59 -0700 Message-Id: <20190731165803.4755-5-salyzyn@android.com> X-Mailer: git-send-email 2.22.0.770.g0f2c4a37fd-goog In-Reply-To: <20190731165803.4755-1-salyzyn@android.com> References: <20190731165803.4755-1-salyzyn@android.com> MIME-Version: 1.0 X-Headers-End: 1hssGh-005TgH-LI Subject: [f2fs-dev] [PATCH v13 4/5] overlayfs: internal getxattr operations without sepolicy checking X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Mark Salyzyn via Linux-f2fs-devel Reply-To: Mark Salyzyn Cc: Latchesar Ionkov , Dave Kleikamp , jfs-discussion@lists.sourceforge.net, Randy Dunlap , linux-doc@vger.kernel.org, Martin Brandenburg , samba-technical@lists.samba.org, Dominique Martinet , Amir Goldstein , David Howells , Chris Mason , "David S . Miller" , Andreas Dilger , ocfs2-devel@oss.oracle.com, netdev@vger.kernel.org, Tyler Hicks , linux-afs@lists.infradead.org, Mike Marshall , linux-xfs@vger.kernel.org, Andreas Gruenbacher , Sage Weil , Jonathan Corbet , Richard Weinberger , Mark Fasheh , devel@lists.orangefs.org, Hugh Dickins , linux-security-module@vger.kernel.org, cluster-devel@redhat.com, Vyacheslav Dubeyko , v9fs-developer@lists.sourceforge.net, Ilya Dryomov , linux-ext4@vger.kernel.org, Stephen Smalley , linux-mm@kvack.org, Vivek Goyal , linux-cifs@vger.kernel.org, Eric Van Hensbergen , ecryptfs@vger.kernel.org, Josef Bacik , "Darrick J . Wong" , reiserfs-devel@vger.kernel.org, Tejun Heo , Greg Kroah-Hartman , Joel Becker , linux-mtd@lists.infradead.org, David Sterba , Jaegeuk Kim , ceph-devel@vger.kernel.org, Trond Myklebust , linux-nfs@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, Theodore Ts'o , linux-fsdevel@vger.kernel.org, Joseph Qi , Mathieu Malaterre , kernel-team@android.com, Miklos Szeredi , Jeff Layton , linux-unionfs@vger.kernel.org, stable@vger.kernel.org, Mark Salyzyn , Steve French , =?UTF-8?q?Ernesto=20A=20=2E=20Fern=C3=A1ndez?= , "Eric W . Biederman" , Jan Kara , Bob Peterson , Phillip Lougher , Andrew Morton , David Woodhouse , Anna Schumaker , linux-btrfs@vger.kernel.org, Alexander Viro Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net Q2hlY2sgaW1wdXJlLCBvcGFxdWUsIG9yaWdpbiAmIG1ldGEgeGF0dHIgd2l0aCBubyBzZXBvbGlj eSBhdWRpdAoodXNpbmcgX192ZnNfZ2V0eGF0dHIpIHNpbmNlIHRoZXNlIG9wZXJhdGlvbnMgYXJl IGludGVybmFsIHRvCm92ZXJsYXlmcyBvcGVyYXRpb25zIGFuZCBkbyBub3QgZGlzY2xvc2UgYW55 IGRhdGEuICBUaGlzIGJlY2FtZQphbiBpc3N1ZSBmb3IgY3JlZGVudGlhbCBvdmVycmlkZSBvZmYg c2luY2Ugc3lzX2FkbWluIHdvdWxkIGhhdmUKYmVlbiByZXF1aXJlZCBieSB0aGUgY2FsbGVyOyB3 aGVyZWFzIHdvdWxkIGhhdmUgYmVlbiBpbmhlcmVudGx5CnByZXNlbnQgZm9yIHRoZSBjcmVhdG9y IHNpbmNlIGl0IHBlcmZvcm1lZCB0aGUgbW91bnQuCgpUaGlzIGlzIGEgY2hhbmdlIGluIG9wZXJh dGlvbnMgc2luY2Ugd2UgZG8gbm90IGNoZWNrIGluIHRoZSBuZXcKb3ZsX2RvX3Zmc19nZXR4YXR0 ciBmdW5jdGlvbiBpZiB0aGUgY3JlZGVudGlhbCBvdmVycmlkZSBpcyBvZmYgb3IKbm90LiAgUmVh c29uaW5nIGlzIHRoYXQgdGhlIHNlcG9saWN5IGNoZWNrIGlzIHVubmVjZXNzYXJ5IG92ZXJoZWFk LAplc3BlY2lhbGx5IHNpbmNlIHRoZSBjaGVjayBjYW4gYmUgZXhwZW5zaXZlLgoKQmVjYXVzZSBm b3Igb3ZlcnJpZGUgY3JlZGVudGlhbHMgb2ZmLCB0aGlzIGFmZmVjdHMgX2V2ZXJ5b25lXyB0aGF0 CnVuZGVybmVhdGggcGVyZm9ybXMgcHJpdmF0ZSB4YXR0ciBjYWxscyB3aXRob3V0IHRoZSBhcHBy b3ByaWF0ZQpzZXBvbGljeSBwZXJtaXNzaW9ucyBhbmQgc3lzX2FkbWluIGNhcGFiaWxpdHkuICBQ cm92aWRpbmcgYmxhbmtldApzdXBwb3J0IGZvciBzeXNfYWRtaW4gd291bGQgYmUgYmFkIGZvciBh bGwgcG9zc2libGUgY2FsbGVycy4KCkZvciB0aGUgb3ZlcnJpZGUgY3JlZGVudGlhbHMgb24sIHRo aXMgd2lsbCBhZmZlY3Qgb25seSB0aGUgbW91bnRlciwKc2hvdWxkIGl0IGxhY2sgc2Vwb2xpY3kg cGVybWlzc2lvbnMuIE5vdCBjb25zaWRlcmVkIGEgc2VjdXJpdHkKcHJvYmxlbSBzaW5jZSBtb3Vu dGluZyBieSBkZWZpbml0aW9uIGhhcyBzeXNfYWRtaW4gY2FwYWJpbGl0aWVzLApidXQgc2Vwb2xp Y3kgY29udGV4dHMgd291bGQgc3RpbGwgbmVlZCB0byBiZSBjcmFmdGVkLgoKSXQgc2hvdWxkIGJl IG5vdGVkIHRoYXQgdGhlcmUgaXMgcHJlY2VkZW5jZSwgX192ZnNfZ2V0eGF0dHIgaXMgdXNlZApp biBvdGhlciBmaWxlc3lzdGVtcyBmb3IgdGhlaXIgb3duIGludGVybmFsIHRydXN0ZWQgeGF0dHIg bWFuYWdlbWVudC4KClNpZ25lZC1vZmYtYnk6IE1hcmsgU2FseXp5biA8c2FseXp5bkBhbmRyb2lk LmNvbT4KQ2M6IE1pa2xvcyBTemVyZWRpIDxtaWtsb3NAc3plcmVkaS5odT4KQ2M6IEpvbmF0aGFu IENvcmJldCA8Y29yYmV0QGx3bi5uZXQ+CkNjOiBWaXZlayBHb3lhbCA8dmdveWFsQHJlZGhhdC5j b20+CkNjOiBFcmljIFcuIEJpZWRlcm1hbiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpDYzogQW1p ciBHb2xkc3RlaW4gPGFtaXI3M2lsQGdtYWlsLmNvbT4KQ2M6IFJhbmR5IER1bmxhcCA8cmR1bmxh cEBpbmZyYWRlYWQub3JnPgpDYzogU3RlcGhlbiBTbWFsbGV5IDxzZHNAdHljaG8ubnNhLmdvdj4K Q2M6IGxpbnV4LXVuaW9uZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1kb2NAdmdlci5rZXJu ZWwub3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCkNjOiBrZXJuZWwtdGVhbUBh bmRyb2lkLmNvbQpDYzogRXJpYyBWYW4gSGVuc2JlcmdlbiA8ZXJpY3ZoQGdtYWlsLmNvbT4KQ2M6 IExhdGNoZXNhciBJb25rb3YgPGx1Y2hvQGlvbmtvdi5uZXQ+CkNjOiBEb21pbmlxdWUgTWFydGlu ZXQgPGFzbWFkZXVzQGNvZGV3cmVjay5vcmc+CkNjOiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0By ZWRoYXQuY29tPgpDYzogQ2hyaXMgTWFzb24gPGNsbUBmYi5jb20+CkNjOiBKb3NlZiBCYWNpayA8 am9zZWZAdG94aWNwYW5kYS5jb20+CkNjOiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ CkNjOiBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPgpDYzogU2FnZSBXZWlsIDxzYWdl QHJlZGhhdC5jb20+CkNjOiBJbHlhIERyeW9tb3YgPGlkcnlvbW92QGdtYWlsLmNvbT4KQ2M6IFN0 ZXZlIEZyZW5jaCA8c2ZyZW5jaEBzYW1iYS5vcmc+CkNjOiBUeWxlciBIaWNrcyA8dHloaWNrc0Bj YW5vbmljYWwuY29tPgpDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jb20+CkNjOiBUaGVvZG9yZSBU cydvIDx0eXRzb0BtaXQuZWR1PgpDYzogQW5kcmVhcyBEaWxnZXIgPGFkaWxnZXIua2VybmVsQGRp bGdlci5jYT4KQ2M6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+CkNjOiBDaGFvIFl1 IDx5dWNoYW8wQGh1YXdlaS5jb20+CkNjOiBCb2IgUGV0ZXJzb24gPHJwZXRlcnNvQHJlZGhhdC5j b20+CkNjOiBBbmRyZWFzIEdydWVuYmFjaGVyIDxhZ3J1ZW5iYUByZWRoYXQuY29tPgpDYzogRGF2 aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgpDYzogUmljaGFyZCBXZWluYmVyZ2Vy IDxyaWNoYXJkQG5vZC5hdD4KQ2M6IERhdmUgS2xlaWthbXAgPHNoYWdneUBrZXJuZWwub3JnPgpD YzogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KQ2M6IFRl anVuIEhlbyA8dGpAa2VybmVsLm9yZz4KQ2M6IFRyb25kIE15a2xlYnVzdCA8dHJvbmQubXlrbGVi dXN0QGhhbW1lcnNwYWNlLmNvbT4KQ2M6IEFubmEgU2NodW1ha2VyIDxhbm5hLnNjaHVtYWtlckBu ZXRhcHAuY29tPgpDYzogTWFyayBGYXNoZWggPG1hcmtAZmFzaGVoLmNvbT4KQ2M6IEpvZWwgQmVj a2VyIDxqbGJlY0BldmlscGxhbi5vcmc+CkNjOiBKb3NlcGggUWkgPGpvc2VwaC5xaUBsaW51eC5h bGliYWJhLmNvbT4KQ2M6IE1pa2UgTWFyc2hhbGwgPGh1YmNhcEBvbW5pYm9uZC5jb20+CkNjOiBN YXJ0aW4gQnJhbmRlbmJ1cmcgPG1hcnRpbkBvbW5pYm9uZC5jb20+CkNjOiBBbGV4YW5kZXIgVmly byA8dmlyb0B6ZW5pdi5saW51eC5vcmcudWs+CkNjOiBQaGlsbGlwIExvdWdoZXIgPHBoaWxsaXBA c3F1YXNoZnMub3JnLnVrPgpDYzogRGFycmljayBKLiBXb25nIDxkYXJyaWNrLndvbmdAb3JhY2xl LmNvbT4KQ2M6IGxpbnV4LXhmc0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IEh1Z2ggRGlja2lucyA8aHVn aGRAZ29vZ2xlLmNvbT4KQ2M6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K Q2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+CkNjOiBNYXRoaWV1 IE1hbGF0ZXJyZSA8bWFsYXRAZGViaWFuLm9yZz4KQ2M6IEVybmVzdG8gQS4gRmVybsOhbmRleiA8 ZXJuZXN0by5tbmQuZmVybmFuZGV6QGdtYWlsLmNvbT4KQ2M6IFZ5YWNoZXNsYXYgRHViZXlrbyA8 c2xhdmFAZHViZXlrby5jb20+CkNjOiB2OWZzLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQKQ2M6IGxpbnV4LWFmc0BsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1idHJmc0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGNlcGgtZGV2ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1jaWZz QHZnZXIua2VybmVsLm9yZwpDYzogc2FtYmEtdGVjaG5pY2FsQGxpc3RzLnNhbWJhLm9yZwpDYzog ZWNyeXB0ZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1leHQ0QHZnZXIua2VybmVsLm9yZwpD YzogbGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKQ2M6IGxpbnV4LWZzZGV2 ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBjbHVzdGVyLWRldmVsQHJlZGhhdC5jb20KQ2M6IGxpbnV4 LW10ZEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBqZnMtZGlzY3Vzc2lvbkBsaXN0cy5zb3VyY2Vm b3JnZS5uZXQKQ2M6IGxpbnV4LW5mc0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IG9jZnMyLWRldmVsQG9z cy5vcmFjbGUuY29tCkNjOiBkZXZlbEBsaXN0cy5vcmFuZ2Vmcy5vcmcKQ2M6IHJlaXNlcmZzLWRl dmVsQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBuZXRkZXZAdmdl ci5rZXJuZWwub3JnCkNjOiBsaW51eC1zZWN1cml0eS1tb2R1bGVAdmdlci5rZXJuZWwub3JnCkNj OiBzdGFibGVAdmdlci5rZXJuZWwub3JnICMgNC40LCA0LjksIDQuMTQgJiA0LjE5Ci0tLQp2MTMg LSByZWJhc2UgdG8gdXNlIF9fdmZzX2dldHhhdHRyIGZsYWdzIG9wdGlvbgoKdjEyIC0gcmViYXNl Cgp2MTEgLSBzd2l0Y2ggbmFtZSB0byBvdmxfZG9fdmZzX2dldHhhdHRyLCBmb3J0aWZ5IGNvbW1l bnQKCnYxMCAtIGFkZGVkIHRvIHBhdGNoIHNlcmllcwotLS0KIGZzL292ZXJsYXlmcy9uYW1laS5j ICAgICB8IDEyICsrKysrKystLS0tLQogZnMvb3ZlcmxheWZzL292ZXJsYXlmcy5oIHwgIDIgKysK IGZzL292ZXJsYXlmcy91dGlsLmMgICAgICB8IDI1ICsrKysrKysrKysrKysrKystLS0tLS0tLS0K IDMgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZnMvb3ZlcmxheWZzL25hbWVpLmMgYi9mcy9vdmVybGF5ZnMvbmFtZWkuYwppbmRl eCA5NzAyZjBkNTMwOWQuLmE0YTQ1MmM0ODlmYSAxMDA2NDQKLS0tIGEvZnMvb3ZlcmxheWZzL25h bWVpLmMKKysrIGIvZnMvb3ZlcmxheWZzL25hbWVpLmMKQEAgLTEwNiwxMCArMTA2LDExIEBAIGlu dCBvdmxfY2hlY2tfZmhfbGVuKHN0cnVjdCBvdmxfZmggKmZoLCBpbnQgZmhfbGVuKQogCiBzdGF0 aWMgc3RydWN0IG92bF9maCAqb3ZsX2dldF9maChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0 IGNoYXIgKm5hbWUpCiB7Ci0JaW50IHJlcywgZXJyOworCXNzaXplX3QgcmVzOworCWludCBlcnI7 CiAJc3RydWN0IG92bF9maCAqZmggPSBOVUxMOwogCi0JcmVzID0gdmZzX2dldHhhdHRyKGRlbnRy eSwgbmFtZSwgTlVMTCwgMCk7CisJcmVzID0gb3ZsX2RvX3Zmc19nZXR4YXR0cihkZW50cnksIG5h bWUsIE5VTEwsIDApOwogCWlmIChyZXMgPCAwKSB7CiAJCWlmIChyZXMgPT0gLUVOT0RBVEEgfHwg cmVzID09IC1FT1BOT1RTVVBQKQogCQkJcmV0dXJuIE5VTEw7CkBAIC0xMjMsNyArMTI0LDcgQEAg c3RhdGljIHN0cnVjdCBvdmxfZmggKm92bF9nZXRfZmgoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj b25zdCBjaGFyICpuYW1lKQogCWlmICghZmgpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwog Ci0JcmVzID0gdmZzX2dldHhhdHRyKGRlbnRyeSwgbmFtZSwgZmgsIHJlcyk7CisJcmVzID0gb3Zs X2RvX3Zmc19nZXR4YXR0cihkZW50cnksIG5hbWUsIGZoLCByZXMpOwogCWlmIChyZXMgPCAwKQog CQlnb3RvIGZhaWw7CiAKQEAgLTE0MSwxMCArMTQyLDExIEBAIHN0YXRpYyBzdHJ1Y3Qgb3ZsX2Zo ICpvdmxfZ2V0X2ZoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSkKIAly ZXR1cm4gTlVMTDsKIAogZmFpbDoKLQlwcl93YXJuX3JhdGVsaW1pdGVkKCJvdmVybGF5ZnM6IGZh aWxlZCB0byBnZXQgb3JpZ2luICglaSlcbiIsIHJlcyk7CisJcHJfd2Fybl9yYXRlbGltaXRlZCgi b3ZlcmxheWZzOiBmYWlsZWQgdG8gZ2V0IG9yaWdpbiAoJXppKVxuIiwgcmVzKTsKIAlnb3RvIG91 dDsKIGludmFsaWQ6Ci0JcHJfd2Fybl9yYXRlbGltaXRlZCgib3ZlcmxheWZzOiBpbnZhbGlkIG9y aWdpbiAoJSpwaE4pXG4iLCByZXMsIGZoKTsKKwlwcl93YXJuX3JhdGVsaW1pdGVkKCJvdmVybGF5 ZnM6IGludmFsaWQgb3JpZ2luICglKnBoTilcbiIsCisJCQkgICAgKGludClyZXMsIGZoKTsKIAln b3RvIG91dDsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvb3ZlcmxheWZzL292ZXJsYXlmcy5oIGIvZnMv b3ZlcmxheWZzL292ZXJsYXlmcy5oCmluZGV4IGFiM2QwMzFjNDIyYi4uOWQyNmQ4NzU4NTEzIDEw MDY0NAotLS0gYS9mcy9vdmVybGF5ZnMvb3ZlcmxheWZzLmgKKysrIGIvZnMvb3ZlcmxheWZzL292 ZXJsYXlmcy5oCkBAIC0yMDUsNiArMjA1LDggQEAgaW50IG92bF93YW50X3dyaXRlKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSk7CiB2b2lkIG92bF9kcm9wX3dyaXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy eSk7CiBzdHJ1Y3QgZGVudHJ5ICpvdmxfd29ya2RpcihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwog Y29uc3Qgc3RydWN0IGNyZWQgKm92bF9vdmVycmlkZV9jcmVkcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiKTsKK3NzaXplX3Qgb3ZsX2RvX3Zmc19nZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnks IGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKmJ1ZiwKKwkJCSAgICBzaXplX3Qgc2l6ZSk7CiBzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKm92bF9zYW1lX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogaW50 IG92bF9jYW5fZGVjb2RlX2ZoKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogc3RydWN0IGRlbnRy eSAqb3ZsX2luZGV4ZGlyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwpkaWZmIC0tZ2l0IGEvZnMv b3ZlcmxheWZzL3V0aWwuYyBiL2ZzL292ZXJsYXlmcy91dGlsLmMKaW5kZXggZjU2NzhhM2Y4MzUw Li5jNTg4YzBkNjZkOGMgMTAwNjQ0Ci0tLSBhL2ZzL292ZXJsYXlmcy91dGlsLmMKKysrIGIvZnMv b3ZlcmxheWZzL3V0aWwuYwpAQCAtNDAsNiArNDAsMTMgQEAgY29uc3Qgc3RydWN0IGNyZWQgKm92 bF9vdmVycmlkZV9jcmVkcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCXJldHVybiBvdmVycmlk ZV9jcmVkcyhvZnMtPmNyZWF0b3JfY3JlZCk7CiB9CiAKK3NzaXplX3Qgb3ZsX2RvX3Zmc19nZXR4 YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKmJ1ZiwK KwkJCSAgICBzaXplX3Qgc2l6ZSkKK3sKKwlyZXR1cm4gX192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBk X2lub2RlKGRlbnRyeSksIG5hbWUsIGJ1Ziwgc2l6ZSwKKwkJCSAgICAgIFhBVFRSX05PU0VDVVJJ VFkpOworfQorCiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKm92bF9zYW1lX3NiKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IpCiB7CiAJc3RydWN0IG92bF9mcyAqb2ZzID0gc2ItPnNfZnNfaW5mbzsKQEAgLTUz Nyw5ICs1NDQsOSBAQCB2b2lkIG92bF9jb3B5X3VwX2VuZChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp CiAKIGJvb2wgb3ZsX2NoZWNrX29yaWdpbl94YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7 Ci0JaW50IHJlczsKKwlzc2l6ZV90IHJlczsKIAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnks IE9WTF9YQVRUUl9PUklHSU4sIE5VTEwsIDApOworCXJlcyA9IG92bF9kb192ZnNfZ2V0eGF0dHIo ZGVudHJ5LCBPVkxfWEFUVFJfT1JJR0lOLCBOVUxMLCAwKTsKIAogCS8qIFplcm8gc2l6ZSB2YWx1 ZSBtZWFucyAiY29waWVkIHVwIGJ1dCBvcmlnaW4gdW5rbm93biIgKi8KIAlpZiAocmVzID49IDAp CkBAIC01NTAsMTMgKzU1NywxMyBAQCBib29sIG92bF9jaGVja19vcmlnaW5feGF0dHIoc3RydWN0 IGRlbnRyeSAqZGVudHJ5KQogCiBib29sIG92bF9jaGVja19kaXJfeGF0dHIoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lKQogewotCWludCByZXM7CisJc3NpemVfdCByZXM7 CiAJY2hhciB2YWw7CiAKIAlpZiAoIWRfaXNfZGlyKGRlbnRyeSkpCiAJCXJldHVybiBmYWxzZTsK IAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnksIG5hbWUsICZ2YWwsIDEpOworCXJlcyA9IG92 bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1lLCAmdmFsLCAxKTsKIAlpZiAocmVzID09IDEg JiYgdmFsID09ICd5JykKIAkJcmV0dXJuIHRydWU7CiAKQEAgLTgzNywxMyArODQ0LDEzIEBAIGlu dCBvdmxfbG9ja19yZW5hbWVfd29ya2RpcihzdHJ1Y3QgZGVudHJ5ICp3b3JrZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICp1cHBlcmRpcikKIC8qIGVyciA8IDAsIDAgaWYgbm8gbWV0YWNvcHkgeGF0dHIsIDEg aWYgbWV0YWNvcHkgeGF0dHIgZm91bmQgKi8KIGludCBvdmxfY2hlY2tfbWV0YWNvcHlfeGF0dHIo c3RydWN0IGRlbnRyeSAqZGVudHJ5KQogewotCWludCByZXM7CisJc3NpemVfdCByZXM7CiAKIAkv KiBPbmx5IHJlZ3VsYXIgZmlsZXMgY2FuIGhhdmUgbWV0YWNvcHkgeGF0dHIgKi8KIAlpZiAoIVNf SVNSRUcoZF9pbm9kZShkZW50cnkpLT5pX21vZGUpKQogCQlyZXR1cm4gMDsKIAotCXJlcyA9IHZm c19nZXR4YXR0cihkZW50cnksIE9WTF9YQVRUUl9NRVRBQ09QWSwgTlVMTCwgMCk7CisJcmVzID0g b3ZsX2RvX3Zmc19nZXR4YXR0cihkZW50cnksIE9WTF9YQVRUUl9NRVRBQ09QWSwgTlVMTCwgMCk7 CiAJaWYgKHJlcyA8IDApIHsKIAkJaWYgKHJlcyA9PSAtRU5PREFUQSB8fCByZXMgPT0gLUVPUE5P VFNVUFApCiAJCQlyZXR1cm4gMDsKQEAgLTg1Miw3ICs4NTksNyBAQCBpbnQgb3ZsX2NoZWNrX21l dGFjb3B5X3hhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAogCXJldHVybiAxOwogb3V0Ogot CXByX3dhcm5fcmF0ZWxpbWl0ZWQoIm92ZXJsYXlmczogZmFpbGVkIHRvIGdldCBtZXRhY29weSAo JWkpXG4iLCByZXMpOworCXByX3dhcm5fcmF0ZWxpbWl0ZWQoIm92ZXJsYXlmczogZmFpbGVkIHRv IGdldCBtZXRhY29weSAoJXppKVxuIiwgcmVzKTsKIAlyZXR1cm4gcmVzOwogfQogCkBAIC04Nzgs NyArODg1LDcgQEAgc3NpemVfdCBvdmxfZ2V0eGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj aGFyICpuYW1lLCBjaGFyICoqdmFsdWUsCiAJc3NpemVfdCByZXM7CiAJY2hhciAqYnVmID0gTlVM TDsKIAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnksIG5hbWUsIE5VTEwsIDApOworCXJlcyA9 IG92bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1lLCBOVUxMLCAwKTsKIAlpZiAocmVzIDwg MCkgewogCQlpZiAocmVzID09IC1FTk9EQVRBIHx8IHJlcyA9PSAtRU9QTk9UU1VQUCkKIAkJCXJl dHVybiAtRU5PREFUQTsKQEAgLTg5MCw3ICs4OTcsNyBAQCBzc2l6ZV90IG92bF9nZXR4YXR0cihz dHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNoYXIgKm5hbWUsIGNoYXIgKip2YWx1ZSwKIAkJaWYgKCFi dWYpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAotCQlyZXMgPSB2ZnNfZ2V0eGF0dHIoZGVudHJ5LCBu YW1lLCBidWYsIHJlcyk7CisJCXJlcyA9IG92bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1l LCBidWYsIHJlcyk7CiAJCWlmIChyZXMgPCAwKQogCQkJZ290byBmYWlsOwogCX0KLS0gCjIuMjIu MC43NzAuZzBmMmM0YTM3ZmQtZ29vZwoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpMaW51eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdApMaW51eC1mMmZz LWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5l dC9saXN0cy9saXN0aW5mby9saW51eC1mMmZzLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8FE3CC32751 for ; Wed, 31 Jul 2019 17:00:49 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4C87421851 for ; Wed, 31 Jul 2019 17:00:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="QLM8sYrE"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=android.com header.i=@android.com header.b="fmiQSh9y" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4C87421851 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=android.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=HM+N/vPMGzqD89SKpdo8LWLiSN1llxYKL4/g9Ff9sCI=; b=QLM8sYrEg3Z9zE rwQpnalShRAh5zjESuhyzSVA6Ojw8SN8R/ksA18TZPnXd3LzUuWjv9cArF6tyLONsYLF7AinM5fMt /KnMxo/j8VGSLRRJcmbKmgMeWFg8lm7GM9hwuEu1INbJ/hOqPbvj0OBBZ0jTH4bFZIh5fL09CMNBf wbYPcOAPNAfNGt6cXB3tkzUJYMQJi3FiIiITBKd9grDcqMyredVvL0t5p/F7Ez3rMQpf2by/puwRZ R48R4X30rwvpTTolWnX1iqM8EAYP1xGZGuohEVqeyYkhVvmtra+7o/lU53DaRGb9vSl3CUe/4UfsF jW8hfedsu/kZlFYfSX1A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hsrxk-00028B-BA; Wed, 31 Jul 2019 17:00:28 +0000 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hsrwF-0007w1-1t for linux-mtd@lists.infradead.org; Wed, 31 Jul 2019 16:59:12 +0000 Received: by mail-pl1-x641.google.com with SMTP id ay6so30791829plb.9 for ; Wed, 31 Jul 2019 09:58:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p6RSnHZej7dMZQfosYc1rQOAXMnG8HF3vzAcSS3MG98=; b=fmiQSh9yv929qF/IP6Uym2pEsxsKnDznkX0VjJ8cIh+7NzZrkbqvPCG3bssMygeAbK NmkNsix4uTqi91gMmHKksLpNQD7b0D1A9bda6aSayMw9sPfvhUAJO63BySMzz39Ednc6 +iWQAfEEJ8NQ6QfBslJvC3DyBQUS6s3R1R0XZUZMZgKOLtN+EIac6ejHjwc9qbdb5uvz eiCuyG0A6yFWZLw5lHrPP3O5DsRBGnqxHkq8vNdP6QJnUoh2+fIqC3yhPbsH+qEpXwib mUbx7N0k3Aa9YqKq/FSCQYABcvQoWcmd3n7QaLFSg3+9u/w9YuhZ+4mMF/9YdnWbfIFZ JhFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p6RSnHZej7dMZQfosYc1rQOAXMnG8HF3vzAcSS3MG98=; b=btZTjQPXf9SV87iSaaCkfBnjvAnne25S53vMVpN0J+1GO5L1Co7PjI53m0E4Ol3jYO YMyiWLobSZndGvYbJIQMuXOJZYUUaxEHSC1Sud4rwIIqS6qsxetW9x0x7SWsE5YF5QNr iTZGFC99M1xZulYABpgmexZdGMPYq1R6558jH0crXonZ903may/AIZJezC7EdnbNmPHF HprJP0R7kBgJ5M5UR4bitFU6PT8MZYFuhuYMYaq+bI6frgV1+mfzZiREOHvgtxjU+BdX fqVxtbzleaAgAPSFrSv/zwxGWLyDimDnRNCzDmzXnAs2pqb4W7FNfYH/+v1jLAZtBpU1 clTA== X-Gm-Message-State: APjAAAX4q9aI9mf4BWfLi7QbWOZc1EmarWp2+LgVQ9pgx50blmicg2dN 7katw5u+vopt+pnWbJxGihw= X-Google-Smtp-Source: APXvYqyB1157MtzfYeWJ1dBcWuMDKOUJgOnzq0VC5i1SowoHtyq/iVzFaALo7AjUpN0O6A6XZS+NfQ== X-Received: by 2002:a17:902:9a85:: with SMTP id w5mr121452633plp.221.1564592333814; Wed, 31 Jul 2019 09:58:53 -0700 (PDT) Received: from nebulus.mtv.corp.google.com ([2620:15c:211:200:5404:91ba:59dc:9400]) by smtp.gmail.com with ESMTPSA id f72sm2245954pjg.10.2019.07.31.09.58.51 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Wed, 31 Jul 2019 09:58:53 -0700 (PDT) From: Mark Salyzyn To: linux-kernel@vger.kernel.org Subject: [PATCH v13 4/5] overlayfs: internal getxattr operations without sepolicy checking Date: Wed, 31 Jul 2019 09:57:59 -0700 Message-Id: <20190731165803.4755-5-salyzyn@android.com> X-Mailer: git-send-email 2.22.0.770.g0f2c4a37fd-goog In-Reply-To: <20190731165803.4755-1-salyzyn@android.com> References: <20190731165803.4755-1-salyzyn@android.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190731_095855_231389_75CE3BBA X-CRM114-Status: GOOD ( 19.39 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Latchesar Ionkov , Dave Kleikamp , jfs-discussion@lists.sourceforge.net, Randy Dunlap , linux-doc@vger.kernel.org, Martin Brandenburg , samba-technical@lists.samba.org, Dominique Martinet , Amir Goldstein , David Howells , Chris Mason , "David S . Miller" , Andreas Dilger , ocfs2-devel@oss.oracle.com, netdev@vger.kernel.org, Tyler Hicks , linux-afs@lists.infradead.org, Mike Marshall , linux-xfs@vger.kernel.org, Andreas Gruenbacher , Sage Weil , Jonathan Corbet , Richard Weinberger , Mark Fasheh , devel@lists.orangefs.org, Hugh Dickins , linux-security-module@vger.kernel.org, cluster-devel@redhat.com, Vyacheslav Dubeyko , v9fs-developer@lists.sourceforge.net, Ilya Dryomov , linux-ext4@vger.kernel.org, Stephen Smalley , linux-mm@kvack.org, Vivek Goyal , Chao Yu , linux-cifs@vger.kernel.org, Eric Van Hensbergen , ecryptfs@vger.kernel.org, Josef Bacik , "Darrick J . Wong" , reiserfs-devel@vger.kernel.org, Tejun Heo , Greg Kroah-Hartman , Joel Becker , linux-mtd@lists.infradead.org, David Sterba , Jaegeuk Kim , ceph-devel@vger.kernel.org, Trond Myklebust , linux-nfs@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, Theodore Ts'o , linux-fsdevel@vger.kernel.org, Joseph Qi , Mathieu Malaterre , kernel-team@android.com, Miklos Szeredi , Jeff Layton , linux-unionfs@vger.kernel.org, stable@vger.kernel.org, Mark Salyzyn , Steve French , =?UTF-8?q?Ernesto=20A=20=2E=20Fern=C3=A1ndez?= , "Eric W . Biederman" , Jan Kara , Bob Peterson , Phillip Lougher , Andrew Morton , David Woodhouse , Anna Schumaker , linux-btrfs@vger.kernel.org, Alexander Viro Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org Q2hlY2sgaW1wdXJlLCBvcGFxdWUsIG9yaWdpbiAmIG1ldGEgeGF0dHIgd2l0aCBubyBzZXBvbGlj eSBhdWRpdAoodXNpbmcgX192ZnNfZ2V0eGF0dHIpIHNpbmNlIHRoZXNlIG9wZXJhdGlvbnMgYXJl IGludGVybmFsIHRvCm92ZXJsYXlmcyBvcGVyYXRpb25zIGFuZCBkbyBub3QgZGlzY2xvc2UgYW55 IGRhdGEuICBUaGlzIGJlY2FtZQphbiBpc3N1ZSBmb3IgY3JlZGVudGlhbCBvdmVycmlkZSBvZmYg c2luY2Ugc3lzX2FkbWluIHdvdWxkIGhhdmUKYmVlbiByZXF1aXJlZCBieSB0aGUgY2FsbGVyOyB3 aGVyZWFzIHdvdWxkIGhhdmUgYmVlbiBpbmhlcmVudGx5CnByZXNlbnQgZm9yIHRoZSBjcmVhdG9y IHNpbmNlIGl0IHBlcmZvcm1lZCB0aGUgbW91bnQuCgpUaGlzIGlzIGEgY2hhbmdlIGluIG9wZXJh dGlvbnMgc2luY2Ugd2UgZG8gbm90IGNoZWNrIGluIHRoZSBuZXcKb3ZsX2RvX3Zmc19nZXR4YXR0 ciBmdW5jdGlvbiBpZiB0aGUgY3JlZGVudGlhbCBvdmVycmlkZSBpcyBvZmYgb3IKbm90LiAgUmVh c29uaW5nIGlzIHRoYXQgdGhlIHNlcG9saWN5IGNoZWNrIGlzIHVubmVjZXNzYXJ5IG92ZXJoZWFk LAplc3BlY2lhbGx5IHNpbmNlIHRoZSBjaGVjayBjYW4gYmUgZXhwZW5zaXZlLgoKQmVjYXVzZSBm b3Igb3ZlcnJpZGUgY3JlZGVudGlhbHMgb2ZmLCB0aGlzIGFmZmVjdHMgX2V2ZXJ5b25lXyB0aGF0 CnVuZGVybmVhdGggcGVyZm9ybXMgcHJpdmF0ZSB4YXR0ciBjYWxscyB3aXRob3V0IHRoZSBhcHBy b3ByaWF0ZQpzZXBvbGljeSBwZXJtaXNzaW9ucyBhbmQgc3lzX2FkbWluIGNhcGFiaWxpdHkuICBQ cm92aWRpbmcgYmxhbmtldApzdXBwb3J0IGZvciBzeXNfYWRtaW4gd291bGQgYmUgYmFkIGZvciBh bGwgcG9zc2libGUgY2FsbGVycy4KCkZvciB0aGUgb3ZlcnJpZGUgY3JlZGVudGlhbHMgb24sIHRo aXMgd2lsbCBhZmZlY3Qgb25seSB0aGUgbW91bnRlciwKc2hvdWxkIGl0IGxhY2sgc2Vwb2xpY3kg cGVybWlzc2lvbnMuIE5vdCBjb25zaWRlcmVkIGEgc2VjdXJpdHkKcHJvYmxlbSBzaW5jZSBtb3Vu dGluZyBieSBkZWZpbml0aW9uIGhhcyBzeXNfYWRtaW4gY2FwYWJpbGl0aWVzLApidXQgc2Vwb2xp Y3kgY29udGV4dHMgd291bGQgc3RpbGwgbmVlZCB0byBiZSBjcmFmdGVkLgoKSXQgc2hvdWxkIGJl IG5vdGVkIHRoYXQgdGhlcmUgaXMgcHJlY2VkZW5jZSwgX192ZnNfZ2V0eGF0dHIgaXMgdXNlZApp biBvdGhlciBmaWxlc3lzdGVtcyBmb3IgdGhlaXIgb3duIGludGVybmFsIHRydXN0ZWQgeGF0dHIg bWFuYWdlbWVudC4KClNpZ25lZC1vZmYtYnk6IE1hcmsgU2FseXp5biA8c2FseXp5bkBhbmRyb2lk LmNvbT4KQ2M6IE1pa2xvcyBTemVyZWRpIDxtaWtsb3NAc3plcmVkaS5odT4KQ2M6IEpvbmF0aGFu IENvcmJldCA8Y29yYmV0QGx3bi5uZXQ+CkNjOiBWaXZlayBHb3lhbCA8dmdveWFsQHJlZGhhdC5j b20+CkNjOiBFcmljIFcuIEJpZWRlcm1hbiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpDYzogQW1p ciBHb2xkc3RlaW4gPGFtaXI3M2lsQGdtYWlsLmNvbT4KQ2M6IFJhbmR5IER1bmxhcCA8cmR1bmxh cEBpbmZyYWRlYWQub3JnPgpDYzogU3RlcGhlbiBTbWFsbGV5IDxzZHNAdHljaG8ubnNhLmdvdj4K Q2M6IGxpbnV4LXVuaW9uZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1kb2NAdmdlci5rZXJu ZWwub3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCkNjOiBrZXJuZWwtdGVhbUBh bmRyb2lkLmNvbQpDYzogRXJpYyBWYW4gSGVuc2JlcmdlbiA8ZXJpY3ZoQGdtYWlsLmNvbT4KQ2M6 IExhdGNoZXNhciBJb25rb3YgPGx1Y2hvQGlvbmtvdi5uZXQ+CkNjOiBEb21pbmlxdWUgTWFydGlu ZXQgPGFzbWFkZXVzQGNvZGV3cmVjay5vcmc+CkNjOiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0By ZWRoYXQuY29tPgpDYzogQ2hyaXMgTWFzb24gPGNsbUBmYi5jb20+CkNjOiBKb3NlZiBCYWNpayA8 am9zZWZAdG94aWNwYW5kYS5jb20+CkNjOiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ CkNjOiBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPgpDYzogU2FnZSBXZWlsIDxzYWdl QHJlZGhhdC5jb20+CkNjOiBJbHlhIERyeW9tb3YgPGlkcnlvbW92QGdtYWlsLmNvbT4KQ2M6IFN0 ZXZlIEZyZW5jaCA8c2ZyZW5jaEBzYW1iYS5vcmc+CkNjOiBUeWxlciBIaWNrcyA8dHloaWNrc0Bj YW5vbmljYWwuY29tPgpDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jb20+CkNjOiBUaGVvZG9yZSBU cydvIDx0eXRzb0BtaXQuZWR1PgpDYzogQW5kcmVhcyBEaWxnZXIgPGFkaWxnZXIua2VybmVsQGRp bGdlci5jYT4KQ2M6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+CkNjOiBDaGFvIFl1 IDx5dWNoYW8wQGh1YXdlaS5jb20+CkNjOiBCb2IgUGV0ZXJzb24gPHJwZXRlcnNvQHJlZGhhdC5j b20+CkNjOiBBbmRyZWFzIEdydWVuYmFjaGVyIDxhZ3J1ZW5iYUByZWRoYXQuY29tPgpDYzogRGF2 aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgpDYzogUmljaGFyZCBXZWluYmVyZ2Vy IDxyaWNoYXJkQG5vZC5hdD4KQ2M6IERhdmUgS2xlaWthbXAgPHNoYWdneUBrZXJuZWwub3JnPgpD YzogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KQ2M6IFRl anVuIEhlbyA8dGpAa2VybmVsLm9yZz4KQ2M6IFRyb25kIE15a2xlYnVzdCA8dHJvbmQubXlrbGVi dXN0QGhhbW1lcnNwYWNlLmNvbT4KQ2M6IEFubmEgU2NodW1ha2VyIDxhbm5hLnNjaHVtYWtlckBu ZXRhcHAuY29tPgpDYzogTWFyayBGYXNoZWggPG1hcmtAZmFzaGVoLmNvbT4KQ2M6IEpvZWwgQmVj a2VyIDxqbGJlY0BldmlscGxhbi5vcmc+CkNjOiBKb3NlcGggUWkgPGpvc2VwaC5xaUBsaW51eC5h bGliYWJhLmNvbT4KQ2M6IE1pa2UgTWFyc2hhbGwgPGh1YmNhcEBvbW5pYm9uZC5jb20+CkNjOiBN YXJ0aW4gQnJhbmRlbmJ1cmcgPG1hcnRpbkBvbW5pYm9uZC5jb20+CkNjOiBBbGV4YW5kZXIgVmly byA8dmlyb0B6ZW5pdi5saW51eC5vcmcudWs+CkNjOiBQaGlsbGlwIExvdWdoZXIgPHBoaWxsaXBA c3F1YXNoZnMub3JnLnVrPgpDYzogRGFycmljayBKLiBXb25nIDxkYXJyaWNrLndvbmdAb3JhY2xl LmNvbT4KQ2M6IGxpbnV4LXhmc0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IEh1Z2ggRGlja2lucyA8aHVn aGRAZ29vZ2xlLmNvbT4KQ2M6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K Q2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+CkNjOiBNYXRoaWV1 IE1hbGF0ZXJyZSA8bWFsYXRAZGViaWFuLm9yZz4KQ2M6IEVybmVzdG8gQS4gRmVybsOhbmRleiA8 ZXJuZXN0by5tbmQuZmVybmFuZGV6QGdtYWlsLmNvbT4KQ2M6IFZ5YWNoZXNsYXYgRHViZXlrbyA8 c2xhdmFAZHViZXlrby5jb20+CkNjOiB2OWZzLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQKQ2M6IGxpbnV4LWFmc0BsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1idHJmc0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGNlcGgtZGV2ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1jaWZz QHZnZXIua2VybmVsLm9yZwpDYzogc2FtYmEtdGVjaG5pY2FsQGxpc3RzLnNhbWJhLm9yZwpDYzog ZWNyeXB0ZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1leHQ0QHZnZXIua2VybmVsLm9yZwpD YzogbGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKQ2M6IGxpbnV4LWZzZGV2 ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBjbHVzdGVyLWRldmVsQHJlZGhhdC5jb20KQ2M6IGxpbnV4 LW10ZEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBqZnMtZGlzY3Vzc2lvbkBsaXN0cy5zb3VyY2Vm b3JnZS5uZXQKQ2M6IGxpbnV4LW5mc0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IG9jZnMyLWRldmVsQG9z cy5vcmFjbGUuY29tCkNjOiBkZXZlbEBsaXN0cy5vcmFuZ2Vmcy5vcmcKQ2M6IHJlaXNlcmZzLWRl dmVsQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBuZXRkZXZAdmdl ci5rZXJuZWwub3JnCkNjOiBsaW51eC1zZWN1cml0eS1tb2R1bGVAdmdlci5rZXJuZWwub3JnCkNj OiBzdGFibGVAdmdlci5rZXJuZWwub3JnICMgNC40LCA0LjksIDQuMTQgJiA0LjE5Ci0tLQp2MTMg LSByZWJhc2UgdG8gdXNlIF9fdmZzX2dldHhhdHRyIGZsYWdzIG9wdGlvbgoKdjEyIC0gcmViYXNl Cgp2MTEgLSBzd2l0Y2ggbmFtZSB0byBvdmxfZG9fdmZzX2dldHhhdHRyLCBmb3J0aWZ5IGNvbW1l bnQKCnYxMCAtIGFkZGVkIHRvIHBhdGNoIHNlcmllcwotLS0KIGZzL292ZXJsYXlmcy9uYW1laS5j ICAgICB8IDEyICsrKysrKystLS0tLQogZnMvb3ZlcmxheWZzL292ZXJsYXlmcy5oIHwgIDIgKysK IGZzL292ZXJsYXlmcy91dGlsLmMgICAgICB8IDI1ICsrKysrKysrKysrKysrKystLS0tLS0tLS0K IDMgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZnMvb3ZlcmxheWZzL25hbWVpLmMgYi9mcy9vdmVybGF5ZnMvbmFtZWkuYwppbmRl eCA5NzAyZjBkNTMwOWQuLmE0YTQ1MmM0ODlmYSAxMDA2NDQKLS0tIGEvZnMvb3ZlcmxheWZzL25h bWVpLmMKKysrIGIvZnMvb3ZlcmxheWZzL25hbWVpLmMKQEAgLTEwNiwxMCArMTA2LDExIEBAIGlu dCBvdmxfY2hlY2tfZmhfbGVuKHN0cnVjdCBvdmxfZmggKmZoLCBpbnQgZmhfbGVuKQogCiBzdGF0 aWMgc3RydWN0IG92bF9maCAqb3ZsX2dldF9maChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0 IGNoYXIgKm5hbWUpCiB7Ci0JaW50IHJlcywgZXJyOworCXNzaXplX3QgcmVzOworCWludCBlcnI7 CiAJc3RydWN0IG92bF9maCAqZmggPSBOVUxMOwogCi0JcmVzID0gdmZzX2dldHhhdHRyKGRlbnRy eSwgbmFtZSwgTlVMTCwgMCk7CisJcmVzID0gb3ZsX2RvX3Zmc19nZXR4YXR0cihkZW50cnksIG5h bWUsIE5VTEwsIDApOwogCWlmIChyZXMgPCAwKSB7CiAJCWlmIChyZXMgPT0gLUVOT0RBVEEgfHwg cmVzID09IC1FT1BOT1RTVVBQKQogCQkJcmV0dXJuIE5VTEw7CkBAIC0xMjMsNyArMTI0LDcgQEAg c3RhdGljIHN0cnVjdCBvdmxfZmggKm92bF9nZXRfZmgoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj b25zdCBjaGFyICpuYW1lKQogCWlmICghZmgpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwog Ci0JcmVzID0gdmZzX2dldHhhdHRyKGRlbnRyeSwgbmFtZSwgZmgsIHJlcyk7CisJcmVzID0gb3Zs X2RvX3Zmc19nZXR4YXR0cihkZW50cnksIG5hbWUsIGZoLCByZXMpOwogCWlmIChyZXMgPCAwKQog CQlnb3RvIGZhaWw7CiAKQEAgLTE0MSwxMCArMTQyLDExIEBAIHN0YXRpYyBzdHJ1Y3Qgb3ZsX2Zo ICpvdmxfZ2V0X2ZoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSkKIAly ZXR1cm4gTlVMTDsKIAogZmFpbDoKLQlwcl93YXJuX3JhdGVsaW1pdGVkKCJvdmVybGF5ZnM6IGZh aWxlZCB0byBnZXQgb3JpZ2luICglaSlcbiIsIHJlcyk7CisJcHJfd2Fybl9yYXRlbGltaXRlZCgi b3ZlcmxheWZzOiBmYWlsZWQgdG8gZ2V0IG9yaWdpbiAoJXppKVxuIiwgcmVzKTsKIAlnb3RvIG91 dDsKIGludmFsaWQ6Ci0JcHJfd2Fybl9yYXRlbGltaXRlZCgib3ZlcmxheWZzOiBpbnZhbGlkIG9y aWdpbiAoJSpwaE4pXG4iLCByZXMsIGZoKTsKKwlwcl93YXJuX3JhdGVsaW1pdGVkKCJvdmVybGF5 ZnM6IGludmFsaWQgb3JpZ2luICglKnBoTilcbiIsCisJCQkgICAgKGludClyZXMsIGZoKTsKIAln b3RvIG91dDsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvb3ZlcmxheWZzL292ZXJsYXlmcy5oIGIvZnMv b3ZlcmxheWZzL292ZXJsYXlmcy5oCmluZGV4IGFiM2QwMzFjNDIyYi4uOWQyNmQ4NzU4NTEzIDEw MDY0NAotLS0gYS9mcy9vdmVybGF5ZnMvb3ZlcmxheWZzLmgKKysrIGIvZnMvb3ZlcmxheWZzL292 ZXJsYXlmcy5oCkBAIC0yMDUsNiArMjA1LDggQEAgaW50IG92bF93YW50X3dyaXRlKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSk7CiB2b2lkIG92bF9kcm9wX3dyaXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy eSk7CiBzdHJ1Y3QgZGVudHJ5ICpvdmxfd29ya2RpcihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwog Y29uc3Qgc3RydWN0IGNyZWQgKm92bF9vdmVycmlkZV9jcmVkcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiKTsKK3NzaXplX3Qgb3ZsX2RvX3Zmc19nZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnks IGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKmJ1ZiwKKwkJCSAgICBzaXplX3Qgc2l6ZSk7CiBzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKm92bF9zYW1lX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogaW50 IG92bF9jYW5fZGVjb2RlX2ZoKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogc3RydWN0IGRlbnRy eSAqb3ZsX2luZGV4ZGlyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwpkaWZmIC0tZ2l0IGEvZnMv b3ZlcmxheWZzL3V0aWwuYyBiL2ZzL292ZXJsYXlmcy91dGlsLmMKaW5kZXggZjU2NzhhM2Y4MzUw Li5jNTg4YzBkNjZkOGMgMTAwNjQ0Ci0tLSBhL2ZzL292ZXJsYXlmcy91dGlsLmMKKysrIGIvZnMv b3ZlcmxheWZzL3V0aWwuYwpAQCAtNDAsNiArNDAsMTMgQEAgY29uc3Qgc3RydWN0IGNyZWQgKm92 bF9vdmVycmlkZV9jcmVkcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCXJldHVybiBvdmVycmlk ZV9jcmVkcyhvZnMtPmNyZWF0b3JfY3JlZCk7CiB9CiAKK3NzaXplX3Qgb3ZsX2RvX3Zmc19nZXR4 YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKmJ1ZiwK KwkJCSAgICBzaXplX3Qgc2l6ZSkKK3sKKwlyZXR1cm4gX192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBk X2lub2RlKGRlbnRyeSksIG5hbWUsIGJ1Ziwgc2l6ZSwKKwkJCSAgICAgIFhBVFRSX05PU0VDVVJJ VFkpOworfQorCiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKm92bF9zYW1lX3NiKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IpCiB7CiAJc3RydWN0IG92bF9mcyAqb2ZzID0gc2ItPnNfZnNfaW5mbzsKQEAgLTUz Nyw5ICs1NDQsOSBAQCB2b2lkIG92bF9jb3B5X3VwX2VuZChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp CiAKIGJvb2wgb3ZsX2NoZWNrX29yaWdpbl94YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7 Ci0JaW50IHJlczsKKwlzc2l6ZV90IHJlczsKIAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnks IE9WTF9YQVRUUl9PUklHSU4sIE5VTEwsIDApOworCXJlcyA9IG92bF9kb192ZnNfZ2V0eGF0dHIo ZGVudHJ5LCBPVkxfWEFUVFJfT1JJR0lOLCBOVUxMLCAwKTsKIAogCS8qIFplcm8gc2l6ZSB2YWx1 ZSBtZWFucyAiY29waWVkIHVwIGJ1dCBvcmlnaW4gdW5rbm93biIgKi8KIAlpZiAocmVzID49IDAp CkBAIC01NTAsMTMgKzU1NywxMyBAQCBib29sIG92bF9jaGVja19vcmlnaW5feGF0dHIoc3RydWN0 IGRlbnRyeSAqZGVudHJ5KQogCiBib29sIG92bF9jaGVja19kaXJfeGF0dHIoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lKQogewotCWludCByZXM7CisJc3NpemVfdCByZXM7 CiAJY2hhciB2YWw7CiAKIAlpZiAoIWRfaXNfZGlyKGRlbnRyeSkpCiAJCXJldHVybiBmYWxzZTsK IAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnksIG5hbWUsICZ2YWwsIDEpOworCXJlcyA9IG92 bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1lLCAmdmFsLCAxKTsKIAlpZiAocmVzID09IDEg JiYgdmFsID09ICd5JykKIAkJcmV0dXJuIHRydWU7CiAKQEAgLTgzNywxMyArODQ0LDEzIEBAIGlu dCBvdmxfbG9ja19yZW5hbWVfd29ya2RpcihzdHJ1Y3QgZGVudHJ5ICp3b3JrZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICp1cHBlcmRpcikKIC8qIGVyciA8IDAsIDAgaWYgbm8gbWV0YWNvcHkgeGF0dHIsIDEg aWYgbWV0YWNvcHkgeGF0dHIgZm91bmQgKi8KIGludCBvdmxfY2hlY2tfbWV0YWNvcHlfeGF0dHIo c3RydWN0IGRlbnRyeSAqZGVudHJ5KQogewotCWludCByZXM7CisJc3NpemVfdCByZXM7CiAKIAkv KiBPbmx5IHJlZ3VsYXIgZmlsZXMgY2FuIGhhdmUgbWV0YWNvcHkgeGF0dHIgKi8KIAlpZiAoIVNf SVNSRUcoZF9pbm9kZShkZW50cnkpLT5pX21vZGUpKQogCQlyZXR1cm4gMDsKIAotCXJlcyA9IHZm c19nZXR4YXR0cihkZW50cnksIE9WTF9YQVRUUl9NRVRBQ09QWSwgTlVMTCwgMCk7CisJcmVzID0g b3ZsX2RvX3Zmc19nZXR4YXR0cihkZW50cnksIE9WTF9YQVRUUl9NRVRBQ09QWSwgTlVMTCwgMCk7 CiAJaWYgKHJlcyA8IDApIHsKIAkJaWYgKHJlcyA9PSAtRU5PREFUQSB8fCByZXMgPT0gLUVPUE5P VFNVUFApCiAJCQlyZXR1cm4gMDsKQEAgLTg1Miw3ICs4NTksNyBAQCBpbnQgb3ZsX2NoZWNrX21l dGFjb3B5X3hhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAogCXJldHVybiAxOwogb3V0Ogot CXByX3dhcm5fcmF0ZWxpbWl0ZWQoIm92ZXJsYXlmczogZmFpbGVkIHRvIGdldCBtZXRhY29weSAo JWkpXG4iLCByZXMpOworCXByX3dhcm5fcmF0ZWxpbWl0ZWQoIm92ZXJsYXlmczogZmFpbGVkIHRv IGdldCBtZXRhY29weSAoJXppKVxuIiwgcmVzKTsKIAlyZXR1cm4gcmVzOwogfQogCkBAIC04Nzgs NyArODg1LDcgQEAgc3NpemVfdCBvdmxfZ2V0eGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj aGFyICpuYW1lLCBjaGFyICoqdmFsdWUsCiAJc3NpemVfdCByZXM7CiAJY2hhciAqYnVmID0gTlVM TDsKIAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnksIG5hbWUsIE5VTEwsIDApOworCXJlcyA9 IG92bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1lLCBOVUxMLCAwKTsKIAlpZiAocmVzIDwg MCkgewogCQlpZiAocmVzID09IC1FTk9EQVRBIHx8IHJlcyA9PSAtRU9QTk9UU1VQUCkKIAkJCXJl dHVybiAtRU5PREFUQTsKQEAgLTg5MCw3ICs4OTcsNyBAQCBzc2l6ZV90IG92bF9nZXR4YXR0cihz dHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNoYXIgKm5hbWUsIGNoYXIgKip2YWx1ZSwKIAkJaWYgKCFi dWYpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAotCQlyZXMgPSB2ZnNfZ2V0eGF0dHIoZGVudHJ5LCBu YW1lLCBidWYsIHJlcyk7CisJCXJlcyA9IG92bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1l LCBidWYsIHJlcyk7CiAJCWlmIChyZXMgPCAwKQogCQkJZ290byBmYWlsOwogCX0KLS0gCjIuMjIu MC43NzAuZzBmMmM0YTM3ZmQtZ29vZwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0DAF4C433FF for ; Wed, 31 Jul 2019 16:58:57 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B65F0216C8 for ; Wed, 31 Jul 2019 16:58:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=android.com header.i=@android.com header.b="fmiQSh9y" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B65F0216C8 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=android.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 47E438E0009; Wed, 31 Jul 2019 12:58:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 42F648E0001; Wed, 31 Jul 2019 12:58:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2F8678E0009; Wed, 31 Jul 2019 12:58:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by kanga.kvack.org (Postfix) with ESMTP id EB95C8E0001 for ; Wed, 31 Jul 2019 12:58:55 -0400 (EDT) Received: by mail-pl1-f199.google.com with SMTP id d6so37810462pls.17 for ; Wed, 31 Jul 2019 09:58:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=p6RSnHZej7dMZQfosYc1rQOAXMnG8HF3vzAcSS3MG98=; b=Y6NiWo3AOm9ozJLETG8957zLVGwPorJiJX8MqtAf0YXT3cPcaPI4inETePptreRfWm FFEOnwpyj0dJGz3fo74CsFe04KUetkAfmeMOIG9ma1mys0hwjXfkwEIIMz9TpoDe8qMC ktewerGYqpkUj75l18741Wl09lg6RdTeGL9PCwL5iBTUesemKZVZ+nJAFqPMHtiRamRl 5/aJPAyIfX3WDePpXLRzz+bQZl78X03/0YhvhlDIjPHQvymXCxbxMl1fFUKDX1VTh1Gl puOJf5jfskCc1rDM1ZEPSYBDKa4S53o51xKzT3k20/kA8kApK3llbmbMB8KzjyVTqSAo +1/Q== X-Gm-Message-State: APjAAAWSHW7078Knv6RbIJGaQxbaofgde2vsj2KJbhBBHkGjEevo+u3S DB+cd/Bt2yNRX08MFoPQfnVRLxGmmblYoQZvl8J80QagXYujav3wE/VaLfPTA1wWIfGrFCgvLWK JUSUiH0rrZL/lq0CT8YNyEwfrxOm4V+xeTB34j/FDPX06i6pRgHsCQQE362AnQ6lstQ== X-Received: by 2002:a17:902:306:: with SMTP id 6mr123058695pld.148.1564592335601; Wed, 31 Jul 2019 09:58:55 -0700 (PDT) X-Received: by 2002:a17:902:306:: with SMTP id 6mr123058621pld.148.1564592334268; Wed, 31 Jul 2019 09:58:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564592334; cv=none; d=google.com; s=arc-20160816; b=R68j8rNtXyd5OKLEAJol0T9FAsRcPC0BqvpBZYbgSrbeVEy4K8URR+Il1O03DxaYx+ J0vtlN1VvF198gGkufgt1g4Dma305Vhjf8NaLFdvNQ1MxNq9gX3J0j6M3h9RjTJ7qG0l 8YRmOy28046+K/qNpwUBQTvr9StOKEWo65a2PcVAlXgC5tuktq3XkOWK+iddKSgUzuVI sHy1aZTZghKZ9oHrXjI3jLXwiaDX0YBWYn7wtbRAeD+5XJeXbQTG8mE/tS1oTq5p3RkM T6t699QwDUnELn24zLQKL1/UnLRh6cguDSvPVpun80BA28w/lWp48l4ppeEKc/Ha6RJo Bmbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=p6RSnHZej7dMZQfosYc1rQOAXMnG8HF3vzAcSS3MG98=; b=mDSA7+Ch1AbUVDgxMK6r1i7sy2TO5UuOQnpVWsbgZf39pPeyQS/N7eTy3O/9ryPqDm rPxD1E0LSEP5URkYexg+vOk6mGU5IPxq72CfNGcqIFi15pGiPdLKWB8Cia6rt5BBEImn XidVGqY0Gz467bKzv1iq7CPEVFBKKDEdVX2DXBL7Ha5NzEuW9alAw5K8Sv8m2HsBNdzO VYLQy1JR+4a24HDVy51puAsPPnoARAHr4HenWaPrtZvbNN4pSdUbeyy8LoX9ZplrXPvW 7ofJlLQtXKOuLVpaqe/+ACZ38qa2Ad6RBdE1oDroYovNE97HJlXOBLWoFXelKAhZQuiD EUtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=fmiQSh9y; spf=pass (google.com: domain of salyzyn@android.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=salyzyn@android.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=android.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id bc5sor83423215plb.36.2019.07.31.09.58.54 for (Google Transport Security); Wed, 31 Jul 2019 09:58:54 -0700 (PDT) Received-SPF: pass (google.com: domain of salyzyn@android.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=fmiQSh9y; spf=pass (google.com: domain of salyzyn@android.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=salyzyn@android.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=android.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p6RSnHZej7dMZQfosYc1rQOAXMnG8HF3vzAcSS3MG98=; b=fmiQSh9yv929qF/IP6Uym2pEsxsKnDznkX0VjJ8cIh+7NzZrkbqvPCG3bssMygeAbK NmkNsix4uTqi91gMmHKksLpNQD7b0D1A9bda6aSayMw9sPfvhUAJO63BySMzz39Ednc6 +iWQAfEEJ8NQ6QfBslJvC3DyBQUS6s3R1R0XZUZMZgKOLtN+EIac6ejHjwc9qbdb5uvz eiCuyG0A6yFWZLw5lHrPP3O5DsRBGnqxHkq8vNdP6QJnUoh2+fIqC3yhPbsH+qEpXwib mUbx7N0k3Aa9YqKq/FSCQYABcvQoWcmd3n7QaLFSg3+9u/w9YuhZ+4mMF/9YdnWbfIFZ JhFA== X-Google-Smtp-Source: APXvYqyB1157MtzfYeWJ1dBcWuMDKOUJgOnzq0VC5i1SowoHtyq/iVzFaALo7AjUpN0O6A6XZS+NfQ== X-Received: by 2002:a17:902:9a85:: with SMTP id w5mr121452633plp.221.1564592333814; Wed, 31 Jul 2019 09:58:53 -0700 (PDT) Received: from nebulus.mtv.corp.google.com ([2620:15c:211:200:5404:91ba:59dc:9400]) by smtp.gmail.com with ESMTPSA id f72sm2245954pjg.10.2019.07.31.09.58.51 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Wed, 31 Jul 2019 09:58:53 -0700 (PDT) From: Mark Salyzyn To: linux-kernel@vger.kernel.org Cc: kernel-team@android.com, Mark Salyzyn , Miklos Szeredi , Jonathan Corbet , Vivek Goyal , "Eric W . Biederman" , Amir Goldstein , Randy Dunlap , Stephen Smalley , linux-unionfs@vger.kernel.org, linux-doc@vger.kernel.org, Eric Van Hensbergen , Latchesar Ionkov , Dominique Martinet , David Howells , Chris Mason , Josef Bacik , David Sterba , Jeff Layton , Sage Weil , Ilya Dryomov , Steve French , Tyler Hicks , Jan Kara , Theodore Ts'o , Andreas Dilger , Jaegeuk Kim , Chao Yu , Bob Peterson , Andreas Gruenbacher , David Woodhouse , Richard Weinberger , Dave Kleikamp , Greg Kroah-Hartman , Tejun Heo , Trond Myklebust , Anna Schumaker , Mark Fasheh , Joel Becker , Joseph Qi , Mike Marshall , Martin Brandenburg , Alexander Viro , Phillip Lougher , "Darrick J . Wong" , linux-xfs@vger.kernel.org, Hugh Dickins , "David S . Miller" , Andrew Morton , Mathieu Malaterre , =?UTF-8?q?Ernesto=20A=20=2E=20Fern=C3=A1ndez?= , Vyacheslav Dubeyko , v9fs-developer@lists.sourceforge.net, linux-afs@lists.infradead.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, ecryptfs@vger.kernel.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, cluster-devel@redhat.com, linux-mtd@lists.infradead.org, jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org, ocfs2-devel@oss.oracle.com, devel@lists.orangefs.org, reiserfs-devel@vger.kernel.org, linux-mm@kvack.org, netdev@vger.kernel.org, linux-security-module@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH v13 4/5] overlayfs: internal getxattr operations without sepolicy checking Date: Wed, 31 Jul 2019 09:57:59 -0700 Message-Id: <20190731165803.4755-5-salyzyn@android.com> X-Mailer: git-send-email 2.22.0.770.g0f2c4a37fd-goog In-Reply-To: <20190731165803.4755-1-salyzyn@android.com> References: <20190731165803.4755-1-salyzyn@android.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Check impure, opaque, origin & meta xattr with no sepolicy audit (using __vfs_getxattr) since these operations are internal to overlayfs operations and do not disclose any data. This became an issue for credential override off since sys_admin would have been required by the caller; whereas would have been inherently present for the creator since it performed the mount. This is a change in operations since we do not check in the new ovl_do_vfs_getxattr function if the credential override is off or not. Reasoning is that the sepolicy check is unnecessary overhead, especially since the check can be expensive. Because for override credentials off, this affects _everyone_ that underneath performs private xattr calls without the appropriate sepolicy permissions and sys_admin capability. Providing blanket support for sys_admin would be bad for all possible callers. For the override credentials on, this will affect only the mounter, should it lack sepolicy permissions. Not considered a security problem since mounting by definition has sys_admin capabilities, but sepolicy contexts would still need to be crafted. It should be noted that there is precedence, __vfs_getxattr is used in other filesystems for their own internal trusted xattr management. Signed-off-by: Mark Salyzyn Cc: Miklos Szeredi Cc: Jonathan Corbet Cc: Vivek Goyal Cc: Eric W. Biederman Cc: Amir Goldstein Cc: Randy Dunlap Cc: Stephen Smalley Cc: linux-unionfs@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: kernel-team@android.com Cc: Eric Van Hensbergen Cc: Latchesar Ionkov Cc: Dominique Martinet Cc: David Howells Cc: Chris Mason Cc: Josef Bacik Cc: David Sterba Cc: Jeff Layton Cc: Sage Weil Cc: Ilya Dryomov Cc: Steve French Cc: Tyler Hicks Cc: Jan Kara Cc: Theodore Ts'o Cc: Andreas Dilger Cc: Jaegeuk Kim Cc: Chao Yu Cc: Bob Peterson Cc: Andreas Gruenbacher Cc: David Woodhouse Cc: Richard Weinberger Cc: Dave Kleikamp Cc: Greg Kroah-Hartman Cc: Tejun Heo Cc: Trond Myklebust Cc: Anna Schumaker Cc: Mark Fasheh Cc: Joel Becker Cc: Joseph Qi Cc: Mike Marshall Cc: Martin Brandenburg Cc: Alexander Viro Cc: Phillip Lougher Cc: Darrick J. Wong Cc: linux-xfs@vger.kernel.org Cc: Hugh Dickins Cc: David S. Miller Cc: Andrew Morton Cc: Mathieu Malaterre Cc: Ernesto A. Fernández Cc: Vyacheslav Dubeyko Cc: v9fs-developer@lists.sourceforge.net Cc: linux-afs@lists.infradead.org Cc: linux-btrfs@vger.kernel.org Cc: ceph-devel@vger.kernel.org Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Cc: ecryptfs@vger.kernel.org Cc: linux-ext4@vger.kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-fsdevel@vger.kernel.org Cc: cluster-devel@redhat.com Cc: linux-mtd@lists.infradead.org Cc: jfs-discussion@lists.sourceforge.net Cc: linux-nfs@vger.kernel.org Cc: ocfs2-devel@oss.oracle.com Cc: devel@lists.orangefs.org Cc: reiserfs-devel@vger.kernel.org Cc: linux-mm@kvack.org Cc: netdev@vger.kernel.org Cc: linux-security-module@vger.kernel.org Cc: stable@vger.kernel.org # 4.4, 4.9, 4.14 & 4.19 --- v13 - rebase to use __vfs_getxattr flags option v12 - rebase v11 - switch name to ovl_do_vfs_getxattr, fortify comment v10 - added to patch series --- fs/overlayfs/namei.c | 12 +++++++----- fs/overlayfs/overlayfs.h | 2 ++ fs/overlayfs/util.c | 25 ++++++++++++++++--------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c index 9702f0d5309d..a4a452c489fa 100644 --- a/fs/overlayfs/namei.c +++ b/fs/overlayfs/namei.c @@ -106,10 +106,11 @@ int ovl_check_fh_len(struct ovl_fh *fh, int fh_len) static struct ovl_fh *ovl_get_fh(struct dentry *dentry, const char *name) { - int res, err; + ssize_t res; + int err; struct ovl_fh *fh = NULL; - res = vfs_getxattr(dentry, name, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, name, NULL, 0); if (res < 0) { if (res == -ENODATA || res == -EOPNOTSUPP) return NULL; @@ -123,7 +124,7 @@ static struct ovl_fh *ovl_get_fh(struct dentry *dentry, const char *name) if (!fh) return ERR_PTR(-ENOMEM); - res = vfs_getxattr(dentry, name, fh, res); + res = ovl_do_vfs_getxattr(dentry, name, fh, res); if (res < 0) goto fail; @@ -141,10 +142,11 @@ static struct ovl_fh *ovl_get_fh(struct dentry *dentry, const char *name) return NULL; fail: - pr_warn_ratelimited("overlayfs: failed to get origin (%i)\n", res); + pr_warn_ratelimited("overlayfs: failed to get origin (%zi)\n", res); goto out; invalid: - pr_warn_ratelimited("overlayfs: invalid origin (%*phN)\n", res, fh); + pr_warn_ratelimited("overlayfs: invalid origin (%*phN)\n", + (int)res, fh); goto out; } diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h index ab3d031c422b..9d26d8758513 100644 --- a/fs/overlayfs/overlayfs.h +++ b/fs/overlayfs/overlayfs.h @@ -205,6 +205,8 @@ int ovl_want_write(struct dentry *dentry); void ovl_drop_write(struct dentry *dentry); struct dentry *ovl_workdir(struct dentry *dentry); const struct cred *ovl_override_creds(struct super_block *sb); +ssize_t ovl_do_vfs_getxattr(struct dentry *dentry, const char *name, void *buf, + size_t size); struct super_block *ovl_same_sb(struct super_block *sb); int ovl_can_decode_fh(struct super_block *sb); struct dentry *ovl_indexdir(struct super_block *sb); diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c index f5678a3f8350..c588c0d66d8c 100644 --- a/fs/overlayfs/util.c +++ b/fs/overlayfs/util.c @@ -40,6 +40,13 @@ const struct cred *ovl_override_creds(struct super_block *sb) return override_creds(ofs->creator_cred); } +ssize_t ovl_do_vfs_getxattr(struct dentry *dentry, const char *name, void *buf, + size_t size) +{ + return __vfs_getxattr(dentry, d_inode(dentry), name, buf, size, + XATTR_NOSECURITY); +} + struct super_block *ovl_same_sb(struct super_block *sb) { struct ovl_fs *ofs = sb->s_fs_info; @@ -537,9 +544,9 @@ void ovl_copy_up_end(struct dentry *dentry) bool ovl_check_origin_xattr(struct dentry *dentry) { - int res; + ssize_t res; - res = vfs_getxattr(dentry, OVL_XATTR_ORIGIN, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, OVL_XATTR_ORIGIN, NULL, 0); /* Zero size value means "copied up but origin unknown" */ if (res >= 0) @@ -550,13 +557,13 @@ bool ovl_check_origin_xattr(struct dentry *dentry) bool ovl_check_dir_xattr(struct dentry *dentry, const char *name) { - int res; + ssize_t res; char val; if (!d_is_dir(dentry)) return false; - res = vfs_getxattr(dentry, name, &val, 1); + res = ovl_do_vfs_getxattr(dentry, name, &val, 1); if (res == 1 && val == 'y') return true; @@ -837,13 +844,13 @@ int ovl_lock_rename_workdir(struct dentry *workdir, struct dentry *upperdir) /* err < 0, 0 if no metacopy xattr, 1 if metacopy xattr found */ int ovl_check_metacopy_xattr(struct dentry *dentry) { - int res; + ssize_t res; /* Only regular files can have metacopy xattr */ if (!S_ISREG(d_inode(dentry)->i_mode)) return 0; - res = vfs_getxattr(dentry, OVL_XATTR_METACOPY, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, OVL_XATTR_METACOPY, NULL, 0); if (res < 0) { if (res == -ENODATA || res == -EOPNOTSUPP) return 0; @@ -852,7 +859,7 @@ int ovl_check_metacopy_xattr(struct dentry *dentry) return 1; out: - pr_warn_ratelimited("overlayfs: failed to get metacopy (%i)\n", res); + pr_warn_ratelimited("overlayfs: failed to get metacopy (%zi)\n", res); return res; } @@ -878,7 +885,7 @@ ssize_t ovl_getxattr(struct dentry *dentry, char *name, char **value, ssize_t res; char *buf = NULL; - res = vfs_getxattr(dentry, name, NULL, 0); + res = ovl_do_vfs_getxattr(dentry, name, NULL, 0); if (res < 0) { if (res == -ENODATA || res == -EOPNOTSUPP) return -ENODATA; @@ -890,7 +897,7 @@ ssize_t ovl_getxattr(struct dentry *dentry, char *name, char **value, if (!buf) return -ENOMEM; - res = vfs_getxattr(dentry, name, buf, res); + res = ovl_do_vfs_getxattr(dentry, name, buf, res); if (res < 0) goto fail; } -- 2.22.0.770.g0f2c4a37fd-goog