From df3aa5a4e1e431ea1ffd5aaff2e7ca8f8cdf20f8 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Thu, 3 Jun 2021 22:16:22 -0400 Subject: If IL is not available, Get*LILIfAvailable should return nullptr Fixes #2494 --- function.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'function.cpp') diff --git a/function.cpp b/function.cpp index 1d0551db..2c1b34ea 100644 --- a/function.cpp +++ b/function.cpp @@ -328,7 +328,10 @@ Ref Function::GetLowLevelIL() const Ref Function::GetLowLevelILIfAvailable() const { - return new LowLevelILFunction(BNGetFunctionLowLevelILIfAvailable(m_object)); + BNLowLevelILFunction* function = BNGetFunctionLowLevelILIfAvailable(m_object); + if (!function) + return nullptr; + return new LowLevelILFunction(function); } @@ -579,7 +582,10 @@ Ref Function::GetLiftedIL() const Ref Function::GetLiftedILIfAvailable() const { - return new LowLevelILFunction(BNGetFunctionLiftedILIfAvailable(m_object)); + BNLowLevelILFunction* function = BNGetFunctionLiftedILIfAvailable(m_object); + if (!function) + return nullptr; + return new LowLevelILFunction(function); } @@ -659,7 +665,10 @@ Ref Function::GetMediumLevelIL() const Ref Function::GetMediumLevelILIfAvailable() const { - return new MediumLevelILFunction(BNGetFunctionMediumLevelILIfAvailable(m_object)); + BNMediumLevelILFunction* function = BNGetFunctionMediumLevelILIfAvailable(m_object); + if (!function) + return nullptr; + return new MediumLevelILFunction(function); } @@ -671,7 +680,10 @@ Ref Function::GetHighLevelIL() const Ref Function::GetHighLevelILIfAvailable() const { - return new HighLevelILFunction(BNGetFunctionHighLevelILIfAvailable(m_object)); + BNHighLevelILFunction* function = BNGetFunctionHighLevelILIfAvailable(m_object); + if (!function) + return nullptr; + return new HighLevelILFunction(function); } -- cgit v1.3.1