Open code423n4 opened 2 years ago
nascent
Vec::new()
Iterator::collect()
Severity: Low
Ex: fn encode_logic_call_confirm() in message_signatures.rs
fn encode_logic_call_confirm()
message_signatures.rs
fn foo(vals: &[Bar]) -> Vec<Bar> { let mut new_array = Vec::new(); for val in vals.iter() { new_array.push(val.clone()) } new_array }
To avoid mutability and instantiating/resizing a Vec, .collect() an Iterator into an immutable Vec directly:
Vec
.collect()
Iterator
fn foo(vals: &[Bar]) -> Vec<Bar> { vals.iter().cloned().collect() }
This is a good suggestion and moderately more efficient.
reopening as per judges assessment as "primary issue" on findings sheet
Handle
nascent
Vulnerability details
[I-01]
Vec::new()
instead ofIterator::collect()
Severity: Low
Ex:
fn encode_logic_call_confirm()
inmessage_signatures.rs
Recommendation
To avoid mutability and instantiating/resizing a
Vec
,.collect()
anIterator
into an immutableVec
directly: