Decent Sepia Caterpillar
High
The liquidatePartyB() function uses delete quoteLayout.partyBPendingQuotes[partyB][partyA]
to clear pending quotes and reset balances, but these operations do not fully reset nested mappings within the Layout struct. The delete operation doesn't traverse through nested mappings as it lacks key set information
Solidity's delete
keyword when dealing with complex data structures, particularly nested mappings within structs. The delete operation does not recursively clear all nested elements.
However, the function liquidatePartyB() uses the delete
to reset liquidator state which is a nested mappings within the Layout struct .
Other instances : https://github.com/sherlock-audit/2024-09-symmio-v0-8-4-update-contest/blob/main/protocol-core/contracts/facets/liquidation/LiquidationFacetImpl.sol#L294
No response
No response
No response
pending quotes and balances for Party B will not be cleared or reset
No response
Ensure that pending quotes
and balances
for Party B are cleared