The flags in link_create no used in multi_kprobe, return -EINVAL if
they assigned, keep it same as other link attach apis. Perhaps due to
their usage habits, users may set the target_fd to -1. Therefore, no
check is carried out here, and it is kept consistent with the multi_uprobe.

Fixes: 0dcac2725406 ("bpf: Add multi kprobe link")
Signed-off-by: Tao Chen <[email protected]>
---
 kernel/trace/bpf_trace.c | 6 ++++++
 1 file changed, 6 insertions(+)

Change list:
- v1 -> v2:
    - remove target_fd check suggested by jiri.
- v1:
    https://lore.kernel.org/bpf/[email protected]/

diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index 13bef2462..5cd0af80f 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -2992,6 +2992,12 @@ int bpf_kprobe_multi_link_attach(const union bpf_attr 
*attr, struct bpf_prog *pr
        /* no support for 32bit archs yet */
        if (sizeof(u64) != sizeof(void *))
                return -EOPNOTSUPP;
+       /*
+        * Perhaps due to their usage habits, users may set the target_fd to 
-1. Therefore,
+        * no check is carried out here, and it is kept consistent with the 
multi_uprobe.
+        */
+       if (attr->link_create.flags)
+               return -EINVAL;
 
        if (!is_kprobe_multi(prog))
                return -EINVAL;
-- 
2.43.0


Reply via email to