libbpf: Propagate errors when retrieving enum value for typed data display
authorAlan Maguire <alan.maguire@oracle.com>
Tue, 20 Jul 2021 08:49:53 +0000 (09:49 +0100)
committerAndrii Nakryiko <andrii@kernel.org>
Tue, 20 Jul 2021 20:49:25 +0000 (13:49 -0700)
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
tools/lib/bpf/btf_dump.c

index d52e546a515c8717a96f833ee8857a44d098b21e..e4b483f15fb99a4947b961431b2a71b4df64ff72 100644 (file)
@@ -2166,8 +2166,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;