Re: [PATCH] fs: proc: fix error return code of proc_map_files_readdir()

From: Jia-Ju Bai
Date: Tue Mar 09 2021 - 20:12:58 EST




On 2021/3/10 3:05, Alexey Dobriyan wrote:
On Tue, Mar 09, 2021 at 10:30:23AM -0800, Eric Biggers wrote:

--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -2332,8 +2332,10 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx)
goto out_put_task;
mm = get_task_mm(task);
- if (!mm)
+ if (!mm) {
+ ret = -ENOENT;
goto out_put_task;
+ }
ret = mmap_read_lock_killable(mm);
Is there something in particular that makes you think that returning ENOENT is
the correct behavior in this case? Try 'ls /proc/$pid/map_files' where pid is a
kernel thread; it's an empty directory, which is probably intentional. Your
patch would change reading the directory to fail with ENOENT.
Yes. 0 from readdir means "no more stuff", not an error.

Thanks for your reply and explanation.
I am sorry for the false report...


Best wishes,
Jia-Ju Bai