diff options
| author | Rubens Brandao <git@rubens.io> | 2024-05-27 10:24:28 -0300 |
|---|---|---|
| committer | Kyle Martin <krm504@nyu.edu> | 2024-05-28 19:06:10 -0400 |
| commit | b3cc03be361d5c6253141e729b096e87e025490f (patch) | |
| tree | 8f89f295033a085a5e86a992b58694cd76a5e3fc /rust/src/mlil | |
| parent | fce26815b400b5d3c0b67a46085ba8c9a61c1457 (diff) | |
fix multiple memory leaks related to CStr/BnString
Diffstat (limited to 'rust/src/mlil')
| -rw-r--r-- | rust/src/mlil/instruction.rs | 9 | ||||
| -rw-r--r-- | rust/src/mlil/lift.rs | 5 | ||||
| -rw-r--r-- | rust/src/mlil/operation.rs | 6 |
3 files changed, 10 insertions, 10 deletions
diff --git a/rust/src/mlil/instruction.rs b/rust/src/mlil/instruction.rs index cb762885..00c97cb2 100644 --- a/rust/src/mlil/instruction.rs +++ b/rust/src/mlil/instruction.rs @@ -3,11 +3,10 @@ use binaryninjacore_sys::BNGetMediumLevelILByIndex; use binaryninjacore_sys::BNMediumLevelILInstruction; use binaryninjacore_sys::BNMediumLevelILOperation; +use crate::architecture::CoreIntrinsic; use crate::operand_iter::OperandIter; use crate::rc::Ref; -use crate::types::{ - ConstantData, ILIntrinsic, RegisterValue, RegisterValueType, SSAVariable, Variable, -}; +use crate::types::{ConstantData, RegisterValue, RegisterValueType, SSAVariable, Variable}; use super::lift::*; use super::operation::*; @@ -906,7 +905,7 @@ impl MediumLevelILInstruction { output: OperandIter::new(&*self.function, op.first_output, op.num_outputs) .vars() .collect(), - intrinsic: ILIntrinsic::new(self.function.get_function().arch(), op.intrinsic), + intrinsic: CoreIntrinsic(self.function.get_function().arch().0, op.intrinsic), params: OperandIter::new(&*self.function, op.first_param, op.num_params) .exprs() .map(|expr| expr.lift()) @@ -925,7 +924,7 @@ impl MediumLevelILInstruction { output: OperandIter::new(&*self.function, op.first_output, op.num_outputs) .ssa_vars() .collect(), - intrinsic: ILIntrinsic::new(self.function.get_function().arch(), op.intrinsic), + intrinsic: CoreIntrinsic(self.function.get_function().arch().0, op.intrinsic), params: OperandIter::new(&*self.function, op.first_param, op.num_params) .exprs() .map(|expr| expr.lift()) diff --git a/rust/src/mlil/lift.rs b/rust/src/mlil/lift.rs index e8548b06..7a5e159b 100644 --- a/rust/src/mlil/lift.rs +++ b/rust/src/mlil/lift.rs @@ -1,7 +1,8 @@ use std::collections::BTreeMap; +use crate::architecture::CoreIntrinsic; use crate::rc::Ref; -use crate::types::{ConstantData, ILIntrinsic, SSAVariable, Variable}; +use crate::types::{ConstantData, SSAVariable, Variable}; use super::operation::*; use super::MediumLevelILFunction; @@ -9,7 +10,7 @@ use super::MediumLevelILFunction; #[derive(Clone)] pub enum MediumLevelILLiftedOperand { ConstantData(ConstantData), - Intrinsic(ILIntrinsic), + Intrinsic(CoreIntrinsic), Expr(MediumLevelILLiftedInstruction), ExprList(Vec<MediumLevelILLiftedInstruction>), Float(f64), diff --git a/rust/src/mlil/operation.rs b/rust/src/mlil/operation.rs index 822688a6..278d1edb 100644 --- a/rust/src/mlil/operation.rs +++ b/rust/src/mlil/operation.rs @@ -1,6 +1,6 @@ use std::collections::BTreeMap; -use crate::types::{ConstantData, ILIntrinsic, SSAVariable, Variable}; +use crate::{architecture::CoreIntrinsic, types::{ConstantData, SSAVariable, Variable}}; use super::MediumLevelILLiftedInstruction; @@ -355,7 +355,7 @@ pub struct Intrinsic { #[derive(Clone, Debug, PartialEq)] pub struct LiftedIntrinsic { pub output: Vec<Variable>, - pub intrinsic: ILIntrinsic, + pub intrinsic: CoreIntrinsic, pub params: Vec<MediumLevelILLiftedInstruction>, } @@ -371,7 +371,7 @@ pub struct IntrinsicSsa { #[derive(Clone, Debug, PartialEq)] pub struct LiftedIntrinsicSsa { pub output: Vec<SSAVariable>, - pub intrinsic: ILIntrinsic, + pub intrinsic: CoreIntrinsic, pub params: Vec<MediumLevelILLiftedInstruction>, } |
