nfsd: Propagate some error code returned by memdup_user()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Thu, 1 Sep 2022 05:27:19 +0000 (07:27 +0200)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 26 Sep 2022 18:02:22 +0000 (14:02 -0400)
Propagate the error code returned by memdup_user() instead of a hard coded
-EFAULT.

Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4recover.c

index 4edfc95..5d68004 100644 (file)
@@ -808,7 +808,7 @@ __cld_pipe_inprogress_downcall(const struct cld_msg_v2 __user *cmsg,
                                return -EFAULT;
                        name.data = memdup_user(&ci->cc_name.cn_id, namelen);
                        if (IS_ERR(name.data))
-                               return -EFAULT;
+                               return PTR_ERR(name.data);
                        name.len = namelen;
                        get_user(princhashlen, &ci->cc_princhash.cp_len);
                        if (princhashlen > 0) {
@@ -817,7 +817,7 @@ __cld_pipe_inprogress_downcall(const struct cld_msg_v2 __user *cmsg,
                                                princhashlen);
                                if (IS_ERR(princhash.data)) {
                                        kfree(name.data);
-                                       return -EFAULT;
+                                       return PTR_ERR(princhash.data);
                                }
                                princhash.len = princhashlen;
                        } else
@@ -830,7 +830,7 @@ __cld_pipe_inprogress_downcall(const struct cld_msg_v2 __user *cmsg,
                                return -EFAULT;
                        name.data = memdup_user(&cnm->cn_id, namelen);
                        if (IS_ERR(name.data))
-                               return -EFAULT;
+                               return PTR_ERR(name.data);
                        name.len = namelen;
                }
                if (name.len > 5 && memcmp(name.data, "hash:", 5) == 0) {