diff mbox series

[bpf-next] bpf: fix bpftool without skeleton code enabled

Message ID 159371070880.18158.837974429614447605.stgit@john-XPS-13-9370
State Changes Requested
Delegated to: BPF Maintainers
Headers show
Series [bpf-next] bpf: fix bpftool without skeleton code enabled | expand

Commit Message

John Fastabend July 2, 2020, 5:25 p.m. UTC
Fix segfault from bpftool by adding emit_obj_refs_plain when skeleton
code is disabled.

Tested by deleting BUILD_BPF_SKELS in Makefile.

# ./bpftool prog show
Error: bpftool built without PID iterator support
3: cgroup_skb  tag 7be49e3934a125ba  gpl
        loaded_at 2020-07-01T08:01:29-0700  uid 0
Segmentation fault

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
---
 tools/bpf/bpftool/pids.c |    1 +
 1 file changed, 1 insertion(+)

Comments

Yonghong Song July 2, 2020, 9:01 p.m. UTC | #1
On 7/2/20 10:25 AM, John Fastabend wrote:
> Fix segfault from bpftool by adding emit_obj_refs_plain when skeleton
> code is disabled.
> 
> Tested by deleting BUILD_BPF_SKELS in Makefile.

You probably hit this issue with a different way, right?
Old clang, or anything? I would be good to clarify in
the commit message. People in general do not tweak Makefile
to find bugs, I guess.

> 
> # ./bpftool prog show
> Error: bpftool built without PID iterator support
> 3: cgroup_skb  tag 7be49e3934a125ba  gpl
>          loaded_at 2020-07-01T08:01:29-0700  uid 0
> Segmentation fault
> 
> Signed-off-by: John Fastabend <john.fastabend@gmail.com>

Ack with request for better description in the commit message.

Acked-by: Yonghong Song <yhs@fb.com>

> ---
>   tools/bpf/bpftool/pids.c |    1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/tools/bpf/bpftool/pids.c b/tools/bpf/bpftool/pids.c
> index 2709be4de2b1..7d5416667c85 100644
> --- a/tools/bpf/bpftool/pids.c
> +++ b/tools/bpf/bpftool/pids.c
> @@ -19,6 +19,7 @@ int build_obj_refs_table(struct obj_refs_table *table, enum bpf_obj_type type)
>   	return -ENOTSUP;
>   }
>   void delete_obj_refs_table(struct obj_refs_table *table) {}
> +void emit_obj_refs_plain(struct obj_refs_table *table, __u32 id, const char *prefix) {}
>   
>   #else /* BPFTOOL_WITHOUT_SKELETONS */
>   
>
Andrii Nakryiko July 6, 2020, 11:30 p.m. UTC | #2
On Thu, Jul 2, 2020 at 10:25 AM John Fastabend <john.fastabend@gmail.com> wrote:
>
> Fix segfault from bpftool by adding emit_obj_refs_plain when skeleton
> code is disabled.
>
> Tested by deleting BUILD_BPF_SKELS in Makefile.
>
> # ./bpftool prog show
> Error: bpftool built without PID iterator support
> 3: cgroup_skb  tag 7be49e3934a125ba  gpl
>         loaded_at 2020-07-01T08:01:29-0700  uid 0
> Segmentation fault
>
> Signed-off-by: John Fastabend <john.fastabend@gmail.com>
> ---

My bad, thanks for the fix!

Acked-by: Andrii Nakryiko <andriin@fb.com>

>  tools/bpf/bpftool/pids.c |    1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/tools/bpf/bpftool/pids.c b/tools/bpf/bpftool/pids.c
> index 2709be4de2b1..7d5416667c85 100644
> --- a/tools/bpf/bpftool/pids.c
> +++ b/tools/bpf/bpftool/pids.c
> @@ -19,6 +19,7 @@ int build_obj_refs_table(struct obj_refs_table *table, enum bpf_obj_type type)
>         return -ENOTSUP;
>  }
>  void delete_obj_refs_table(struct obj_refs_table *table) {}
> +void emit_obj_refs_plain(struct obj_refs_table *table, __u32 id, const char *prefix) {}
>
>  #else /* BPFTOOL_WITHOUT_SKELETONS */
>
>
diff mbox series

Patch

diff --git a/tools/bpf/bpftool/pids.c b/tools/bpf/bpftool/pids.c
index 2709be4de2b1..7d5416667c85 100644
--- a/tools/bpf/bpftool/pids.c
+++ b/tools/bpf/bpftool/pids.c
@@ -19,6 +19,7 @@  int build_obj_refs_table(struct obj_refs_table *table, enum bpf_obj_type type)
 	return -ENOTSUP;
 }
 void delete_obj_refs_table(struct obj_refs_table *table) {}
+void emit_obj_refs_plain(struct obj_refs_table *table, __u32 id, const char *prefix) {}
 
 #else /* BPFTOOL_WITHOUT_SKELETONS */