backends: Check results for NULL early in dwarf_peeled_die_type

Message ID 20230406150424.476494-1-mark@klomp.org
State Committed
Headers
Series backends: Check results for NULL early in dwarf_peeled_die_type |

Commit Message

Mark Wielaard April 6, 2023, 3:04 p.m. UTC
  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

Mark Wielaard April 14, 2023, 3:26 p.m. UTC | #1
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
  

Patch

diff --git a/backends/libebl_CPU.h b/backends/libebl_CPU.h
index 3b2cc3e4..d138f5f7 100644
--- a/backends/libebl_CPU.h
+++ b/backends/libebl_CPU.h
@@ -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);