fprobe: Fix to ensure the number of active retprobes is not zero

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: default avatarwuqiang.matt <wuqiang.matt@bytedance.com>
Closes: https://lore.kernel.org/all/20231016222103.cb9f426edc60220eabd8aa6a@kernel.org/
Fixes: 5b0ab789 ("fprobe: Add exit_handler support")
Signed-off-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
parent 2a86ac30
...@@ -189,7 +189,7 @@ static int fprobe_init_rethook(struct fprobe *fp, int num) ...@@ -189,7 +189,7 @@ static int fprobe_init_rethook(struct fprobe *fp, int num)
{ {
int i, size; int i, size;
if (num < 0) if (num <= 0)
return -EINVAL; return -EINVAL;
if (!fp->exit_handler) { if (!fp->exit_handler) {
...@@ -202,8 +202,8 @@ static int fprobe_init_rethook(struct fprobe *fp, int num) ...@@ -202,8 +202,8 @@ static int fprobe_init_rethook(struct fprobe *fp, int num)
size = fp->nr_maxactive; size = fp->nr_maxactive;
else else
size = num * num_possible_cpus() * 2; size = num * num_possible_cpus() * 2;
if (size < 0) if (size <= 0)
return -E2BIG; return -EINVAL;
fp->rethook = rethook_alloc((void *)fp, fprobe_exit_handler); fp->rethook = rethook_alloc((void *)fp, fprobe_exit_handler);
if (!fp->rethook) if (!fp->rethook)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment