Whamcloud - gitweb
LU-6865 mdd: check return value of posix_acl_from_xattr 33/15633/8
authorLi Dongyang <dongyang.li@anu.edu.au>
Fri, 17 Jul 2015 14:04:03 +0000 (00:04 +1000)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 6 Oct 2015 01:56:13 +0000 (01:56 +0000)
passing a ERR_PTR to posix_acl_release will cause a crash

Signed-off-by: Li Dongyang <dongyang.li@anu.edu.au>
Change-Id: I1870121e2f4fb187cd8c58f263b651ddf83a574b
Reviewed-on: http://review.whamcloud.com/15633
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
lustre/mdd/mdd_object.c

index 8e69704..e283a64 100644 (file)
@@ -1035,6 +1035,8 @@ static int mdd_xattr_set(const struct lu_env *env, struct md_object *obj,
                 * ACL. */
                acl = posix_acl_from_xattr(&init_user_ns, buf->lb_buf,
                                           buf->lb_len);
                 * ACL. */
                acl = posix_acl_from_xattr(&init_user_ns, buf->lb_buf,
                                           buf->lb_len);
+               if (IS_ERR(acl))
+                       RETURN(PTR_ERR(acl));
                if (acl == NULL) {
                        rc = mdd_xattr_del(env, obj, name);
                        RETURN(rc);
                if (acl == NULL) {
                        rc = mdd_xattr_del(env, obj, name);
                        RETURN(rc);