static void show_leaf(struct subleaf *leaf)
{
- if (!leaf)
- return;
-
if (show_raw) {
leaf_print_raw(leaf);
} else {
{
int i;
- if (!func)
- return;
-
for (i = 0; i < func->nr; i++)
show_leaf(&func->leafs[i]);
}
range = (index & 0x80000000) ? leafs_ext : leafs_basic;
func_idx = index & 0xffff;
- if ((func_idx + 1) > (u32)range->nr) {
- warnx("Invalid input index (0x%x)", index);
+ if ((func_idx + 1) > (u32)range->nr)
return NULL;
- }
+
return &range->funcs[func_idx];
}
/* Only show specific leaf/subleaf info */
func = index_to_func(user_index);
if (!func)
- return;
+ errx(EXIT_FAILURE, "Invalid input leaf (0x%x)", user_index);
/* Dump the raw data also */
show_raw = true;
if (user_sub != 0xFFFFFFFF) {
- if (user_sub + 1 <= (u32)func->nr) {
- show_leaf(&func->leafs[user_sub]);
- return;
+ if (user_sub + 1 > (u32)func->nr) {
+ errx(EXIT_FAILURE, "Leaf 0x%x has no valid subleaf = 0x%x",
+ user_index, user_sub);
}
- warnx("Invalid input subleaf (0x%x)", user_sub);
+ show_leaf(&func->leafs[user_sub]);
+ return;
}
show_func(func);