[PATCH bpf-next 3/3] libbpf: propagate errors when retrieving enum value for typed data display

From: Alan Maguire
Date: Mon Jul 19 2021 - 18:23:45 EST


When retrieving the enum value associated with typed data during
"is data zero?" checking in btf_dump_type_data_check_zero(), the
return value of btf_dump_get_enum_value() is not passed to the caller
if the function returns a non-zero (error) value. Currently, 0
is returned if the function returns an error. We should instead
propagate the error to the caller.

Signed-off-by: Alan Maguire <alan.maguire@xxxxxxxxxx>
---
tools/lib/bpf/btf_dump.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/lib/bpf/btf_dump.c b/tools/lib/bpf/btf_dump.c
index 4a25512..ddc900b 100644
--- a/tools/lib/bpf/btf_dump.c
+++ b/tools/lib/bpf/btf_dump.c
@@ -2145,8 +2145,9 @@ static int btf_dump_type_data_check_zero(struct btf_dump *d,
return -ENODATA;
}
case BTF_KIND_ENUM:
- if (btf_dump_get_enum_value(d, t, data, id, &value))
- return 0;
+ err = btf_dump_get_enum_value(d, t, data, id, &value);
+ if (err)
+ return err;
if (value == 0)
return -ENODATA;
return 0;
--
1.8.3.1