Skip to content

Commit 3b6aa9c

Browse files
authored
fix: add sanity check for intertimAsset == 0 in approveRefund() [sup 9337] (#656)
1 parent 4d26c8d commit 3b6aa9c

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

src/router-plus/SuperformRouterPlusAsync.sol

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,8 @@ contract SuperformRouterPlusAsync is ISuperformRouterPlusAsync, BaseSuperformRou
452452

453453
Refund memory r = refunds[routerPlusPayloadId_];
454454

455+
if (r.interimToken == address(0)) revert INVALID_REFUND_DATA();
456+
455457
approvedRefund[routerPlusPayloadId_] = true;
456458

457459
/// @dev deleting to prevent re-entrancy

test/unit/router-plus/SuperformRouterPlus.t.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2506,6 +2506,12 @@ contract SuperformRouterPlusTest is ProtocolActions {
25062506
SuperformRouterPlusAsync(ROUTER_PLUS_ASYNC_SOURCE).approveRefund(1);
25072507
vm.stopPrank();
25082508

2509+
/// @dev testing invalid refund data
2510+
vm.startPrank(deployer);
2511+
vm.expectRevert(ISuperformRouterPlusAsync.INVALID_REFUND_DATA.selector);
2512+
SuperformRouterPlusAsync(ROUTER_PLUS_ASYNC_SOURCE).approveRefund(3);
2513+
vm.stopPrank();
2514+
25092515
/// @dev testing valid refund approval
25102516
uint256 balanceBefore = MockERC20(refundToken).balanceOf(deployer);
25112517
uint256 routerBalanceBefore = MockERC20(refundToken).balanceOf(address(ROUTER_PLUS_ASYNC_SOURCE));

0 commit comments

Comments
 (0)