]> git.hungrycats.org Git - linux/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Dec 2024 09:41:07 +0000 (10:41 +0100)
commit 088f294609d8f8816dc316681aef2eb61982e0da upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/proc/kcore.c

index 7a85735d584f35d6cabdeb1823c38542167911ec..e376f48c4b8bf48e36222008d13f22a8cd892e1c 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.