]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
backends: Check results for NULL early in dwarf_peeled_die_type
authorMark Wielaard <mark@klomp.org>
Thu, 6 Apr 2023 14:49:27 +0000 (16:49 +0200)
committerMark Wielaard <mark@klomp.org>
Fri, 14 Apr 2023 15:25:03 +0000 (17:25 +0200)
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

index 3b2cc3e492fc79f9605480f957342b87ff54e59e..d138f5f7e588991fe3b87638c1ce22c601801bbe 100644 (file)
@@ -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);