fs/proc/kcore.c: Clear ret value in read_kcore_iter after successful iov_iter_zero
authorJiri Olsa <jolsa@kernel.org>
Thu, 21 Nov 2024 23:11:18 +0000 (00:11 +0100)
committerChristian Brauner <brauner@kernel.org>
Fri, 22 Nov 2024 11:08:43 +0000 (12:08 +0100)
If iov_iter_zero succeeds after failed copy_from_kernel_nofault,
we need to reset the ret value to zero otherwise it will be returned
as final return value of read_kcore_iter.

This fixes objdump -d dump over /proc/kcore for me.

Cc: stable@vger.kernel.org
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Fixes: 3d5854d75e31 ("fs/proc/kcore.c: allow translation of physical memory addresses")
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20241121231118.3212000-1-jolsa@kernel.org
Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/proc/kcore.c

index 51446c5..c82c408 100644 (file)
@@ -600,6 +600,7 @@ static ssize_t read_kcore_iter(struct kiocb *iocb, struct iov_iter *iter)
                                        ret = -EFAULT;
                                        goto out;
                                }
+                               ret = 0;
                        /*
                         * We know the bounce buffer is safe to copy from, so
                         * use _copy_to_iter() directly.