]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bpftool: Using the right format specifiers
authorJiayuan Chen <jiayuan.chen@linux.dev>
Tue, 11 Mar 2025 11:28:09 +0000 (19:28 +0800)
committerAndrii Nakryiko <andrii@kernel.org>
Mon, 17 Mar 2025 20:50:56 +0000 (13:50 -0700)
Fixed some formatting specifiers errors, such as using %d for int and %u
for unsigned int, as well as other byte-length types.

Perform type cast using the type derived from the data type itself, for
example, if it's originally an int, it will be cast to unsigned int if
forced to unsigned.

Signed-off-by: Jiayuan Chen <jiayuan.chen@linux.dev>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20250311112809.81901-3-jiayuan.chen@linux.dev
12 files changed:
kernel/bpf/disasm.c
tools/bpf/bpftool/btf.c
tools/bpf/bpftool/btf_dumper.c
tools/bpf/bpftool/cgroup.c
tools/bpf/bpftool/common.c
tools/bpf/bpftool/jit_disasm.c
tools/bpf/bpftool/map_perf_ring.c
tools/bpf/bpftool/net.c
tools/bpf/bpftool/netlink_dumper.c
tools/bpf/bpftool/prog.c
tools/bpf/bpftool/tracelog.c
tools/bpf/bpftool/xlated_dumper.c

index 974d172d6735ab30e4e29f2043f43b2417da5eed..20883c6b1546c75560986f1f1135c1f07cf9bbc3 100644 (file)
@@ -202,7 +202,7 @@ void print_bpf_insn(const struct bpf_insn_cbs *cbs,
                                insn->dst_reg, class == BPF_ALU ? 'w' : 'r',
                                insn->dst_reg);
                } else if (is_addr_space_cast(insn)) {
-                       verbose(cbs->private_data, "(%02x) r%d = addr_space_cast(r%d, %d, %d)\n",
+                       verbose(cbs->private_data, "(%02x) r%d = addr_space_cast(r%d, %u, %u)\n",
                                insn->code, insn->dst_reg,
                                insn->src_reg, ((u32)insn->imm) >> 16, (u16)insn->imm);
                } else if (is_mov_percpu_addr(insn)) {
@@ -381,7 +381,7 @@ void print_bpf_insn(const struct bpf_insn_cbs *cbs,
                                insn->code, class == BPF_JMP32 ? 'w' : 'r',
                                insn->dst_reg,
                                bpf_jmp_string[BPF_OP(insn->code) >> 4],
-                               insn->imm, insn->off);
+                               (u32)insn->imm, insn->off);
                }
        } else {
                verbose(cbs->private_data, "(%02x) %s\n",
index 2636655ac18085eda92fd3bd0ab78fc6e89c44f7..6b14cbfa58aa2b2234978fa86f33bfc364c71663 100644 (file)
@@ -253,7 +253,7 @@ static int dump_btf_type(const struct btf *btf, __u32 id,
                                if (btf_kflag(t))
                                        printf("\n\t'%s' val=%d", name, v->val);
                                else
-                                       printf("\n\t'%s' val=%u", name, v->val);
+                                       printf("\n\t'%s' val=%u", name, (__u32)v->val);
                        }
                }
                if (json_output)
@@ -1022,7 +1022,7 @@ static int do_dump(int argc, char **argv)
                        for (i = 0; i < root_type_cnt; i++) {
                                if (root_type_ids[i] == root_id) {
                                        err = -EINVAL;
-                                       p_err("duplicate root_id %d supplied", root_id);
+                                       p_err("duplicate root_id %u supplied", root_id);
                                        goto done;
                                }
                        }
@@ -1132,7 +1132,7 @@ build_btf_type_table(struct hashmap *tab, enum bpf_obj_type type,
                        break;
                default:
                        err = -1;
-                       p_err("unexpected object type: %d", type);
+                       p_err("unexpected object type: %u", type);
                        goto err_free;
                }
                if (err) {
@@ -1155,7 +1155,7 @@ build_btf_type_table(struct hashmap *tab, enum bpf_obj_type type,
                        break;
                default:
                        err = -1;
-                       p_err("unexpected object type: %d", type);
+                       p_err("unexpected object type: %u", type);
                        goto err_free;
                }
                if (fd < 0) {
@@ -1188,7 +1188,7 @@ build_btf_type_table(struct hashmap *tab, enum bpf_obj_type type,
                        break;
                default:
                        err = -1;
-                       p_err("unexpected object type: %d", type);
+                       p_err("unexpected object type: %u", type);
                        goto err_free;
                }
                if (!btf_id)
@@ -1254,12 +1254,12 @@ show_btf_plain(struct bpf_btf_info *info, int fd,
 
        n = 0;
        hashmap__for_each_key_entry(btf_prog_table, entry, info->id) {
-               printf("%s%lu", n++ == 0 ? "  prog_ids " : ",", entry->value);
+               printf("%s%lu", n++ == 0 ? "  prog_ids " : ",", (unsigned long)entry->value);
        }
 
        n = 0;
        hashmap__for_each_key_entry(btf_map_table, entry, info->id) {
-               printf("%s%lu", n++ == 0 ? "  map_ids " : ",", entry->value);
+               printf("%s%lu", n++ == 0 ? "  map_ids " : ",", (unsigned long)entry->value);
        }
 
        emit_obj_refs_plain(refs_table, info->id, "\n\tpids ");
index 527fe867a8fbdebf62839073b8b75674931102fd..4e896d8a2416e9c48bca715338b2b68f4d6989fb 100644 (file)
@@ -653,7 +653,7 @@ static int __btf_dumper_type_only(const struct btf *btf, __u32 type_id,
        case BTF_KIND_ARRAY:
                array = (struct btf_array *)(t + 1);
                BTF_PRINT_TYPE(array->type);
-               BTF_PRINT_ARG("[%d]", array->nelems);
+               BTF_PRINT_ARG("[%u]", array->nelems);
                break;
        case BTF_KIND_PTR:
                BTF_PRINT_TYPE(t->type);
index 9af426d4329931ebb1a403db50873adefd2beb38..93b139bfb9880a525a560f811192e8f72e16e4e3 100644 (file)
@@ -191,7 +191,7 @@ static int show_bpf_prog(int id, enum bpf_attach_type attach_type,
                if (attach_btf_name)
                        printf(" %-15s", attach_btf_name);
                else if (info.attach_btf_id)
-                       printf(" attach_btf_obj_id=%d attach_btf_id=%d",
+                       printf(" attach_btf_obj_id=%u attach_btf_id=%u",
                               info.attach_btf_obj_id, info.attach_btf_id);
                printf("\n");
        }
index 0a764426d93586f07719b85104604759ca903c61..ecfa790adc13f22efb73355bbdc037100b4ae1c0 100644 (file)
@@ -714,7 +714,7 @@ ifindex_to_arch(__u32 ifindex, __u64 ns_dev, __u64 ns_ino, const char **opt)
        int vendor_id;
 
        if (!ifindex_to_name_ns(ifindex, ns_dev, ns_ino, devname)) {
-               p_err("Can't get net device name for ifindex %d: %s", ifindex,
+               p_err("Can't get net device name for ifindex %u: %s", ifindex,
                      strerror(errno));
                return NULL;
        }
@@ -739,7 +739,7 @@ ifindex_to_arch(__u32 ifindex, __u64 ns_dev, __u64 ns_ino, const char **opt)
        /* No NFP support in LLVM, we have no valid triple to return. */
        default:
                p_err("Can't get arch name for device vendor id 0x%04x",
-                     vendor_id);
+                     (unsigned int)vendor_id);
                return NULL;
        }
 }
index c032d2c6ab6d55fee4d793faf2448dc07ebf375e..8895b4e1f69031d2e8652f313c1852cc2201362b 100644 (file)
@@ -343,7 +343,8 @@ int disasm_print_insn(unsigned char *image, ssize_t len, int opcodes,
 {
        const struct bpf_line_info *linfo = NULL;
        unsigned int nr_skip = 0;
-       int count, i, pc = 0;
+       int count, i;
+       unsigned int pc = 0;
        disasm_ctx_t ctx;
 
        if (!len)
index 21d7d447e1f3b2db3740629efc877f52306cb141..552b4ca40c27c09adb7a4560590c641f18f8b033 100644 (file)
@@ -91,15 +91,15 @@ print_bpf_output(void *private_data, int cpu, struct perf_event_header *event)
                jsonw_end_object(json_wtr);
        } else {
                if (e->header.type == PERF_RECORD_SAMPLE) {
-                       printf("== @%lld.%09lld CPU: %d index: %d =====\n",
+                       printf("== @%llu.%09llu CPU: %d index: %d =====\n",
                               e->time / 1000000000ULL, e->time % 1000000000ULL,
                               cpu, idx);
                        fprint_hex(stdout, e->data, e->size, " ");
                        printf("\n");
                } else if (e->header.type == PERF_RECORD_LOST) {
-                       printf("lost %lld events\n", lost->lost);
+                       printf("lost %llu events\n", lost->lost);
                } else {
-                       printf("unknown event type=%d size=%d\n",
+                       printf("unknown event type=%u size=%u\n",
                               e->header.type, e->header.size);
                }
        }
index d2242d9f84411f485889e6927d7fc915f7eae687..64f958f437b01e57865f24c9bc592e5581f3cbd6 100644 (file)
@@ -476,7 +476,7 @@ static void __show_dev_tc_bpf(const struct ip_devname_ifindex *dev,
        for (i = 0; i < optq.count; i++) {
                NET_START_OBJECT;
                NET_DUMP_STR("devname", "%s", dev->devname);
-               NET_DUMP_UINT("ifindex", "(%u)", dev->ifindex);
+               NET_DUMP_UINT("ifindex", "(%u)", (unsigned int)dev->ifindex);
                NET_DUMP_STR("kind", " %s", attach_loc_strings[loc]);
                ret = __show_dev_tc_bpf_name(prog_ids[i], prog_name,
                                             sizeof(prog_name));
@@ -831,7 +831,7 @@ static void show_link_netfilter(void)
                if (err) {
                        if (errno == ENOENT)
                                break;
-                       p_err("can't get next link: %s (id %d)", strerror(errno), id);
+                       p_err("can't get next link: %s (id %u)", strerror(errno), id);
                        break;
                }
 
index 5f65140b003b2e6a2d8460b64d2cb47700174014..0a3c7e96c797a70e12207ac9099a1168f3c3f39f 100644 (file)
@@ -45,7 +45,7 @@ static int do_xdp_dump_one(struct nlattr *attr, unsigned int ifindex,
        NET_START_OBJECT;
        if (name)
                NET_DUMP_STR("devname", "%s", name);
-       NET_DUMP_UINT("ifindex", "(%d)", ifindex);
+       NET_DUMP_UINT("ifindex", "(%u)", ifindex);
 
        if (mode == XDP_ATTACHED_MULTI) {
                if (json_output) {
@@ -74,7 +74,7 @@ int do_xdp_dump(struct ifinfomsg *ifinfo, struct nlattr **tb)
        if (!tb[IFLA_XDP])
                return 0;
 
-       return do_xdp_dump_one(tb[IFLA_XDP], ifinfo->ifi_index,
+       return do_xdp_dump_one(tb[IFLA_XDP], (unsigned int)ifinfo->ifi_index,
                               libbpf_nla_getattr_str(tb[IFLA_IFNAME]));
 }
 
@@ -168,7 +168,7 @@ int do_filter_dump(struct tcmsg *info, struct nlattr **tb, const char *kind,
                NET_START_OBJECT;
                if (devname[0] != '\0')
                        NET_DUMP_STR("devname", "%s", devname);
-               NET_DUMP_UINT("ifindex", "(%u)", ifindex);
+               NET_DUMP_UINT("ifindex", "(%u)", (unsigned int)ifindex);
                NET_DUMP_STR("kind", " %s", kind);
                ret = do_bpf_filter_dump(tb[TCA_OPTIONS]);
                NET_END_OBJECT_FINAL;
index 52ffb74ae4e89aff52cb3d7007c64d96e99770b1..f010295350be54cf3b7a632111c232febb72b05c 100644 (file)
@@ -521,10 +521,10 @@ static void print_prog_header_plain(struct bpf_prog_info *info, int fd)
        print_dev_plain(info->ifindex, info->netns_dev, info->netns_ino);
        printf("%s", info->gpl_compatible ? "  gpl" : "");
        if (info->run_time_ns)
-               printf(" run_time_ns %lld run_cnt %lld",
+               printf(" run_time_ns %llu run_cnt %llu",
                       info->run_time_ns, info->run_cnt);
        if (info->recursion_misses)
-               printf(" recursion_misses %lld", info->recursion_misses);
+               printf(" recursion_misses %llu", info->recursion_misses);
        printf("\n");
 }
 
@@ -569,7 +569,7 @@ static void print_prog_plain(struct bpf_prog_info *info, int fd, bool orphaned)
        }
 
        if (info->btf_id)
-               printf("\n\tbtf_id %d", info->btf_id);
+               printf("\n\tbtf_id %u", info->btf_id);
 
        emit_obj_refs_plain(refs_table, info->id, "\n\tpids ");
 
@@ -1164,7 +1164,7 @@ static int get_run_data(const char *fname, void **data_ptr, unsigned int *size)
                }
                if (nb_read > buf_size - block_size) {
                        if (buf_size == UINT32_MAX) {
-                               p_err("data_in/ctx_in is too long (max: %d)",
+                               p_err("data_in/ctx_in is too long (max: %u)",
                                      UINT32_MAX);
                                goto err_free;
                        }
@@ -2252,7 +2252,7 @@ static char *profile_target_name(int tgt_fd)
 
        t = btf__type_by_id(btf, func_info.type_id);
        if (!t) {
-               p_err("btf %d doesn't have type %d",
+               p_err("btf %u doesn't have type %u",
                      info.btf_id, func_info.type_id);
                goto out;
        }
@@ -2330,7 +2330,7 @@ static int profile_open_perf_events(struct profiler_bpf *obj)
                        continue;
                for (cpu = 0; cpu < obj->rodata->num_cpu; cpu++) {
                        if (profile_open_perf_event(m, cpu, map_fd)) {
-                               p_err("failed to create event %s on cpu %d",
+                               p_err("failed to create event %s on cpu %u",
                                      metrics[m].name, cpu);
                                return -1;
                        }
index bf1f02212797248dbc8b1210cca7463316ad09ca..31d806e3bdaaa9aedf61124aeec509d0cba87034 100644 (file)
@@ -78,7 +78,7 @@ static bool get_tracefs_pipe(char *mnt)
                return false;
 
        /* Allow room for NULL terminating byte and pipe file name */
-       snprintf(format, sizeof(format), "%%*s %%%zds %%99s %%*s %%*d %%*d\\n",
+       snprintf(format, sizeof(format), "%%*s %%%zus %%99s %%*s %%*d %%*d\\n",
                 PATH_MAX - strlen(pipe_name) - 1);
        while (fscanf(fp, format, mnt, type) == 2)
                if (strcmp(type, fstype) == 0) {
index d0094345fb2bc86a58721f749bc8e91f709abbb8..5e7cb8b36fef2e56259845c8ceed8312a7a70ea9 100644 (file)
@@ -199,13 +199,13 @@ static const char *print_imm(void *private_data,
 
        if (insn->src_reg == BPF_PSEUDO_MAP_FD)
                snprintf(dd->scratch_buff, sizeof(dd->scratch_buff),
-                        "map[id:%u]", insn->imm);
+                        "map[id:%d]", insn->imm);
        else if (insn->src_reg == BPF_PSEUDO_MAP_VALUE)
                snprintf(dd->scratch_buff, sizeof(dd->scratch_buff),
-                        "map[id:%u][0]+%u", insn->imm, (insn + 1)->imm);
+                        "map[id:%d][0]+%d", insn->imm, (insn + 1)->imm);
        else if (insn->src_reg == BPF_PSEUDO_MAP_IDX_VALUE)
                snprintf(dd->scratch_buff, sizeof(dd->scratch_buff),
-                        "map[idx:%u]+%u", insn->imm, (insn + 1)->imm);
+                        "map[idx:%d]+%d", insn->imm, (insn + 1)->imm);
        else if (insn->src_reg == BPF_PSEUDO_FUNC)
                snprintf(dd->scratch_buff, sizeof(dd->scratch_buff),
                         "subprog[%+d]", insn->imm);