Re: [PATCH bpf-next v2] bpftool: Check map name length when map create

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2/12/25 05:07, Andrii Nakryiko wrote:
On Tue, Feb 11, 2025 at 2:48 AM Quentin Monnet <qmo@xxxxxxxxxx> wrote:
2025-02-11 18:38 UTC+0800 ~ Rong Tao <rtoax@xxxxxxxxxxx>
From: Rong Tao <rongtao@xxxxxxxx>

The size of struct bpf_map::name is BPF_OBJ_NAME_LEN (16).

bpf(2) {
   map_create() {
     bpf_obj_name_cpy(map->name, attr->map_name, sizeof(attr->map_name));
   }
}

When specifying a map name using bpftool map create name, no error is
reported if the name length is greater than 15.

     $ sudo bpftool map create /sys/fs/bpf/12345678901234567890 \
         type array key 4 value 4 entries 5 name 12345678901234567890

Users will think that 12345678901234567890 is legal, but this name cannot
be used to index a map.

     $ sudo bpftool map show name 12345678901234567890
     Error: can't parse name

     $ sudo bpftool map show
     ...
     1249: array  name 123456789012345  flags 0x0
       key 4B  value 4B  max_entries 5  memlock 304B

     $ sudo bpftool map show name 123456789012345
     1249: array  name 123456789012345  flags 0x0
       key 4B  value 4B  max_entries 5  memlock 304B

The map name provided in the command line is truncated, but no error is
reported. This submission checks the length of the map name.

Signed-off-by: Rong Tao <rongtao@xxxxxxxx>

Reviewed-by: Quentin Monnet <qmo@xxxxxxxxxx>

Would it make sense to just warn but proceed with a truncated name?
libbpf truncates the name when creating a map, but preserves the
original name in BTF (and in memory, fetchable through
bpf_map__name()). So from the user's perspective that map is still
named "blah-blah-something-long", even if the kernel records just a
prefix of that.

Basically, instead of forcing users to count the first 15 characters,
warn, but do the right thing anyways?

Yes, you're right, i'll submit v3.

Rong Tao


Thank you!





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux