backends: Check results for NULL early in dwarf_peeled_die_type
Commit Message
Calling dwarf_peeled_die_type with a NULL results pointer is an error,
check early that result is not NULL so dwarf_formref_die and
dwarf_peel_type won't try to set the NULL Dwarf_Die.
* backends/libebl_CPU.h (dwarf_peeled_die_type): Move check
for results == NULL to start of function.
Signed-off-by: Mark Wielaard <mark@klomp.org>
---
backends/libebl_CPU.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Comments
Hi,
On Thu, 2023-04-06 at 17:04 +0200, Mark Wielaard wrote:
> Calling dwarf_peeled_die_type with a NULL results pointer is an error,
> check early that result is not NULL so dwarf_formref_die and
> dwarf_peel_type won't try to set the NULL Dwarf_Die.
>
> * backends/libebl_CPU.h (dwarf_peeled_die_type): Move check
> for results == NULL to start of function.
Pushed,
Mark
@@ -66,13 +66,13 @@ dwarf_peeled_die_type (Dwarf_Die *die, Dwarf_Die *result)
/* The function has no return value, like a `void' function in C. */
return 0;
- if (dwarf_formref_die (attr, result) == NULL)
+ if (result == NULL)
return -1;
- if (dwarf_peel_type (result, result) != 0)
+ if (dwarf_formref_die (attr, result) == NULL)
return -1;
- if (result == NULL)
+ if (dwarf_peel_type (result, result) != 0)
return -1;
int tag = dwarf_tag (result);