AFLplusplus / AFLplusplus/LibAFL

Redundant Borrowing and Double Mapping in MappedCrossoverInsertMutator::mutate

Đang mở
#3,731 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Rust
Star
2.6k
Fork
481
Merge trung bình
2 ngày 30 phút
Pull request đã merge (30 ngày)
16

Mô tả

### Description

The `MappedCrossoverInsertMutator::mutate` function performs redundant operations when accessing and mapping the corpus input:

1. The testcase is borrowed twice using `get_from_all(id)?.borrow_mut()`.
2. The input is loaded and mapped twice:
- First to compute `other_size`
- Second to retrieve the mapped input for mutation
3. Additional unnecessary `unwrap()` checks increase branching complexity.

This results in:
- Redundant function calls
- Extra borrow operations
- Unnecessary memory allocations
- Reduced readability

### Expected Behavior

The mapped input and its size should be retrieved in a single borrow scope and used directly for mutation without re-loading or re-mapping.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.