fprobe: Fix to ensure the number of active retprobes is not zero
authorMasami Hiramatsu (Google) <mhiramat@kernel.org>
Mon, 16 Oct 2023 23:49:45 +0000 (08:49 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Oct 2023 10:03:12 +0000 (12:03 +0200)
[ Upstream commit 700b2b439766e8aab8a7174991198497345bd411 ]

The number of active retprobes can be zero but it is not acceptable,
so return EINVAL error if detected.

Link: https://lore.kernel.org/all/169750018550.186853.11198884812017796410.stgit@devnote2/
Reported-by: wuqiang.matt <wuqiang.matt@bytedance.com>
Closes: https://lore.kernel.org/all/20231016222103.cb9f426edc60220eabd8aa6a@kernel.org/
Fixes: 5b0ab78998e3 ("fprobe: Add exit_handler support")
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/trace/fprobe.c

index 441a373..f386d6b 100644 (file)
@@ -134,7 +134,7 @@ static int fprobe_init_rethook(struct fprobe *fp, int num)
 {
        int i, size;
 
-       if (num < 0)
+       if (num <= 0)
                return -EINVAL;
 
        if (!fp->exit_handler) {
@@ -147,8 +147,8 @@ static int fprobe_init_rethook(struct fprobe *fp, int num)
                size = fp->nr_maxactive;
        else
                size = num * num_possible_cpus() * 2;
-       if (size < 0)
-               return -E2BIG;
+       if (size <= 0)
+               return -EINVAL;
 
        fp->rethook = rethook_alloc((void *)fp, fprobe_exit_handler);
        if (!fp->rethook)