Thread (24 messages) 24 messages, 3 authors, 2022-01-21

Re: [PATCH bpf-next v4 4/8] bpftool: Implement btf_save_raw()

flat view

From: Mauricio Vásquez Bernal <hidden>
Date: 2022-01-21 20:45:34
Also in: bpf

On Fri, Jan 14, 2022 at 9:10 PM Andrii Nakryiko
[off-list ref] wrote:
On Wed, Jan 12, 2022 at 6:27 AM Mauricio Vásquez [off-list ref] wrote:
quoted
Helper function to save a BTF object to a file.

Signed-off-by: Mauricio Vásquez <redacted>
Signed-off-by: Rafael David Tinoco <redacted>
Signed-off-by: Lorenzo Fontana <redacted>
Signed-off-by: Leonardo Di Donato <redacted>
---
 tools/bpf/bpftool/gen.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
See suggestions, but either way:

Acked-by: Andrii Nakryiko <andrii@kernel.org>

quoted
diff --git a/tools/bpf/bpftool/gen.c b/tools/bpf/bpftool/gen.c
index cdeb1047d79d..5a74fb68dc84 100644
--- a/tools/bpf/bpftool/gen.c
+++ b/tools/bpf/bpftool/gen.c
@@ -1096,6 +1096,36 @@ static int do_help(int argc, char **argv)
        return 0;
 }

+static int btf_save_raw(const struct btf *btf, const char *path)
+{
+       const void *data;
+       FILE *f = NULL;
+       __u32 data_sz;
+       int err = 0;
+
+       data = btf__raw_data(btf, &data_sz);
+       if (!data) {
+               err = -ENOMEM;
+               goto out;
+       }
can do just return -ENOMEM instead of goto
quoted
+
+       f = fopen(path, "wb");
+       if (!f) {
+               err = -errno;
+               goto out;
+       }
+
+       if (fwrite(data, 1, data_sz, f) != data_sz) {
+               err = -errno;
+               goto out;
+       }
+
+out:
+       if (f)
with early return above, no need for if (f) check
After those suggestions I decided to completely remove the out label.


quoted
+               fclose(f);
+       return err;
+}
+
 /* Create BTF file for a set of BPF objects */
 static int btfgen(const char *src_btf, const char *dst_btf, const char *objspaths[])
 {
--
2.25.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help