summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Ferrell <josh@vector35.com>2025-12-24 12:10:14 -0500
committerJosh Ferrell <josh@vector35.com>2025-12-24 12:10:14 -0500
commit1c0569fbe6e9f9f390d22062425fbf95f5c56576 (patch)
treee2a6ecb50cc1932dc914956320f8423165e481b7
parente2d75d9d99b2335855cc3e409508bbde1e8e6761 (diff)
Fix crash when displaying variable with null type in pseudo-c and pseudo-rust
-rw-r--r--lang/c/pseudoc.cpp4
-rw-r--r--lang/rust/pseudorust.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/lang/c/pseudoc.cpp b/lang/c/pseudoc.cpp
index 5a67eb40..592e224f 100644
--- a/lang/c/pseudoc.cpp
+++ b/lang/c/pseudoc.cpp
@@ -554,7 +554,7 @@ void PseudoCFunction::AppendFieldTextTokens(const HighLevelILInstruction& instr,
const auto type = GetFieldType(srcExpr, false);
const auto fieldDisplayType = GetFieldDisplayType(type, fieldOffset, memberIndex, false);
- if (fieldDisplayType == FieldDisplayOffset)
+ if (type && fieldDisplayType == FieldDisplayOffset)
{
if (!addrOf)
tokens.Append(OperationToken, "*");
@@ -656,7 +656,7 @@ void PseudoCFunction::AppendFieldTextTokens(const HighLevelILInstruction& instr,
if (memberIndex != BN_INVALID_EXPR)
memberIndexHint = memberIndex;
- if (type->GetStructure()->ResolveMemberOrBaseMember(
+ if (type && type->GetStructure()->ResolveMemberOrBaseMember(
GetFunction()->GetView(), fieldOffset, 0,
[&](NamedTypeReference*, Structure* s, size_t memberIndex, uint64_t structOffset,
uint64_t adjustedOffset, const StructureMember& member) {
diff --git a/lang/rust/pseudorust.cpp b/lang/rust/pseudorust.cpp
index b7082e77..92e9e56a 100644
--- a/lang/rust/pseudorust.cpp
+++ b/lang/rust/pseudorust.cpp
@@ -507,7 +507,7 @@ void PseudoRustFunction::AppendFieldTextTokens(const HighLevelILInstruction& ins
const auto type = GetFieldType(srcExpr, false);
const auto fieldDisplayType = GetFieldDisplayType(type, fieldOffset, memberIndex, false);
- if (fieldDisplayType == FieldDisplayOffset)
+ if (type && fieldDisplayType == FieldDisplayOffset)
{
if (!addrOf)
tokens.Append(OperationToken, "*");
@@ -621,7 +621,7 @@ void PseudoRustFunction::AppendFieldTextTokens(const HighLevelILInstruction& ins
if (memberIndex != BN_INVALID_EXPR)
memberIndexHint = memberIndex;
- if (type->GetStructure()->ResolveMemberOrBaseMember(
+ if (type && type->GetStructure()->ResolveMemberOrBaseMember(
GetFunction()->GetView(), fieldOffset, 0,
[&](NamedTypeReference*, Structure* s, size_t memberIndex, uint64_t structOffset,
uint64_t adjustedOffset, const StructureMember& member) {