diff options
| author | Ryan Snyder <ryan@vector35.com> | 2018-04-29 23:24:57 -0400 |
|---|---|---|
| committer | Ryan Snyder <ryan@vector35.com> | 2018-04-29 23:29:45 -0400 |
| commit | b5779972913a77276afa808a415b23ecdfabcf72 (patch) | |
| tree | 3410fcb7485ef80961e24ad93a5af31bd803c9ab | |
| parent | 58428f68bf8e3c04a57b20ed9de007d6a0a425e1 (diff) | |
Prevent creation of LowLevelILFunction wrappers on the stack
| -rw-r--r-- | architecture.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/architecture.cpp b/architecture.cpp index a1aaca2d..682cffbc 100644 --- a/architecture.cpp +++ b/architecture.cpp @@ -195,8 +195,8 @@ bool Architecture::GetInstructionLowLevelILCallback(void* ctxt, const uint8_t* d size_t* len, BNLowLevelILFunction* il) { Architecture* arch = (Architecture*)ctxt; - LowLevelILFunction func(il); - return arch->GetInstructionLowLevelIL(data, addr, *len, func); + Ref<LowLevelILFunction> func(new LowLevelILFunction(BNNewLowLevelILFunctionReference(il))); + return arch->GetInstructionLowLevelIL(data, addr, *len, *func); } @@ -401,8 +401,8 @@ size_t Architecture::GetFlagWriteLowLevelILCallback(void* ctxt, BNLowLevelILOper uint32_t flag, BNRegisterOrConstant* operands, size_t operandCount, BNLowLevelILFunction* il) { Architecture* arch = (Architecture*)ctxt; - LowLevelILFunction func(il); - return arch->GetFlagWriteLowLevelIL(op, size, flagWriteType, flag, operands, operandCount, func); + Ref<LowLevelILFunction> func(new LowLevelILFunction(BNNewLowLevelILFunctionReference(il))); + return arch->GetFlagWriteLowLevelIL(op, size, flagWriteType, flag, operands, operandCount, *func); } @@ -410,16 +410,16 @@ size_t Architecture::GetFlagConditionLowLevelILCallback(void* ctxt, BNLowLevelIL BNLowLevelILFunction* il) { Architecture* arch = (Architecture*)ctxt; - LowLevelILFunction func(il); - return arch->GetFlagConditionLowLevelIL(cond, semClass, func); + Ref<LowLevelILFunction> func(new LowLevelILFunction(BNNewLowLevelILFunctionReference(il))); + return arch->GetFlagConditionLowLevelIL(cond, semClass, *func); } size_t Architecture::GetSemanticFlagGroupLowLevelILCallback(void* ctxt, uint32_t semGroup, BNLowLevelILFunction* il) { Architecture* arch = (Architecture*)ctxt; - LowLevelILFunction func(il); - return arch->GetSemanticFlagGroupLowLevelIL(semGroup, func); + Ref<LowLevelILFunction> func(new LowLevelILFunction(BNNewLowLevelILFunctionReference(il))); + return arch->GetSemanticFlagGroupLowLevelIL(semGroup, *func); } |
