From: Alan Maguire <alan.maguire@oracle.com>
Date: Tue, 20 Jul 2021 09:49:53 +0100
Subject: libbpf: Propagate errors when retrieving enum value for typed data
display
Patch-mainline: v5.15-rc1
Git-commit: 720c29fca9fb87c473148ff666b75314420cdda6
References: jsc#PED-1377
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@oracle.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/1626770993-11073-4-git-send-email-alan.maguire@oracle.com
Acked-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
---
tools/lib/bpf/btf_dump.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/tools/lib/bpf/btf_dump.c
+++ b/tools/lib/bpf/btf_dump.c
@@ -2166,8 +2166,9 @@ static int btf_dump_type_data_check_zero
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;