diff options
| author | Brian Potchik <brian@vector35.com> | 2025-11-07 16:43:22 -0500 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2025-11-07 16:43:22 -0500 |
| commit | 457928217ef7c2ea36aa20346df4e0790044ae35 (patch) | |
| tree | 90b92e488d274018a4b755a225ebcebd7541cfb7 | |
| parent | 8c09e77cb661c991ed1c76ef9809ee7ea0579807 (diff) | |
Fix crash when attempting to open an invalid file.
| -rw-r--r-- | transformcontext.cpp | 10 | ||||
| -rw-r--r-- | transformsession.cpp | 15 |
2 files changed, 20 insertions, 5 deletions
diff --git a/transformcontext.cpp b/transformcontext.cpp index 9b01e306..92514296 100644 --- a/transformcontext.cpp +++ b/transformcontext.cpp @@ -17,7 +17,10 @@ TransformContext::~TransformContext() Ref<BinaryView> TransformContext::GetInput() const { - return new BinaryView(BNTransformContextGetInput(m_object)); + BNBinaryView* view = BNTransformContextGetInput(m_object); + if (!view) + return nullptr; + return new BinaryView(view); } @@ -123,7 +126,10 @@ void TransformContext::SetTransformResult(BNTransformResult result) Ref<Metadata> TransformContext::GetMetadata() const { - return new Metadata(BNTransformContextGetMetadata(m_object)); + BNMetadata* metadata = BNTransformContextGetMetadata(m_object); + if (!metadata) + return nullptr; + return new Metadata(metadata); } diff --git a/transformsession.cpp b/transformsession.cpp index 9cf5cf3b..14aabcea 100644 --- a/transformsession.cpp +++ b/transformsession.cpp @@ -41,19 +41,28 @@ TransformSession::~TransformSession() Ref<BinaryView> TransformSession::GetCurrentView() const { - return new BinaryView(BNTransformSessionGetCurrentView(m_object)); + BNBinaryView* view = BNTransformSessionGetCurrentView(m_object); + if (!view) + return nullptr; + return new BinaryView(view); } Ref<TransformContext> TransformSession::GetRootContext() const { - return new TransformContext(BNTransformSessionGetRootContext(m_object)); + BNTransformContext* context = BNTransformSessionGetRootContext(m_object); + if (!context) + return nullptr; + return new TransformContext(context); } Ref<TransformContext> TransformSession::GetCurrentContext() const { - return new TransformContext(BNTransformSessionGetCurrentContext(m_object)); + BNTransformContext* context = BNTransformSessionGetCurrentContext(m_object); + if (!context) + return nullptr; + return new TransformContext(context); } |
