summaryrefslogtreecommitdiff
path: root/rust/src/mlil
diff options
context:
space:
mode:
authorRubens Brandao <git@rubens.io>2024-05-27 10:24:28 -0300
committerKyle Martin <krm504@nyu.edu>2024-05-28 19:06:10 -0400
commitb3cc03be361d5c6253141e729b096e87e025490f (patch)
tree8f89f295033a085a5e86a992b58694cd76a5e3fc /rust/src/mlil
parentfce26815b400b5d3c0b67a46085ba8c9a61c1457 (diff)
fix multiple memory leaks related to CStr/BnString
Diffstat (limited to 'rust/src/mlil')
-rw-r--r--rust/src/mlil/instruction.rs9
-rw-r--r--rust/src/mlil/lift.rs5
-rw-r--r--rust/src/mlil/operation.rs6
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>,
}