tools: bpftool: protect against races with disappearing objects
On program/map show we may get an ID of an object from GETNEXT,
but the object may disappear before we call GET_FD_BY_ID. If
that happens, ignore the object and continue.
Fixes: 71bb428fe2
("tools: bpf: add bpftool")
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Acked-by: Quentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
b3b1b65328
commit
8207c6dd47
|
@ -528,6 +528,8 @@ static int do_show(int argc, char **argv)
|
||||||
|
|
||||||
fd = bpf_map_get_fd_by_id(id);
|
fd = bpf_map_get_fd_by_id(id);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
|
if (errno == ENOENT)
|
||||||
|
continue;
|
||||||
p_err("can't get map by id (%u): %s",
|
p_err("can't get map by id (%u): %s",
|
||||||
id, strerror(errno));
|
id, strerror(errno));
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -382,6 +382,8 @@ static int do_show(int argc, char **argv)
|
||||||
|
|
||||||
fd = bpf_prog_get_fd_by_id(id);
|
fd = bpf_prog_get_fd_by_id(id);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
|
if (errno == ENOENT)
|
||||||
|
continue;
|
||||||
p_err("can't get prog by id (%u): %s",
|
p_err("can't get prog by id (%u): %s",
|
||||||
id, strerror(errno));
|
id, strerror(errno));
|
||||||
err = -1;
|
err = -1;
|
||||||
|
|
Loading…
Reference in New Issue