From: Li Dongyang Date: Tue, 4 Mar 2014 06:10:49 +0000 (+1100) Subject: LU-4703 mdd: do not skip xattr sanity check for all cases X-Git-Tag: 2.5.57~30 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=3474d192add07e1f2122515580a987a5da22e974 LU-4703 mdd: do not skip xattr sanity check for all cases xattr sanity check should be done at all times. Otherwise we are risking letting a non root user setting access acl on any file. Signed-off-by: Li Dongyang Change-Id: I5f44d38f2589f0758548d8ccae5efef27205f0a0 Reviewed-on: http://review.whamcloud.com/9469 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Nathaniel Clark Reviewed-by: Bob Glossman Reviewed-by: John L. Hammond Reviewed-by: Andreas Dilger --- diff --git a/lustre/mdd/mdd_object.c b/lustre/mdd/mdd_object.c index ef887cf..b44f6f1 100644 --- a/lustre/mdd/mdd_object.c +++ b/lustre/mdd/mdd_object.c @@ -1041,15 +1041,15 @@ static int mdd_xattr_set(const struct lu_env *env, struct md_object *obj, if (rc) RETURN(rc); + rc = mdd_xattr_sanity_check(env, mdd_obj, attr); + if (rc) + RETURN(rc); + if (!strcmp(name, XATTR_NAME_ACL_ACCESS)) { rc = mdd_acl_set(env, mdd_obj, attr, buf, fl); RETURN(rc); } - rc = mdd_xattr_sanity_check(env, mdd_obj, attr); - if (rc) - RETURN(rc); - handle = mdd_trans_create(env, mdd); if (IS_ERR(handle)) RETURN(PTR_ERR(handle));