First Flight #18: T-Swap

First Flight #18
Beginner FriendlyDeFiFoundry
100 EXP
View results
Submission Details
Severity: low
Valid

Default value returned by TSwapPool::swapExactInput results in incorrect return value given

Summary:

The swapExactInput function is expected to return the actual amount of tokens bought by the caller. However, while it declares the named return value output it is never assigned a value, nor uses an explicit return statement.

Vulnerability Details:

Impact:

The return value will always be 0, giving incorrect information to the caller.

Tools Used

Recommendations:

{
uint256 inputReserves = inputToken.balanceOf(address(this));
uint256 outputReserves = outputToken.balanceOf(address(this));

  • uint256 outputAmount = getOutputAmountBasedOnInput(inputAmount, inputReserves,  outputReserves);
    
  •   output = getOutputAmountBasedOnInput(inputAmount, inputReserves, outputReserves);
    
  •  if (outputAmount < minOutputAmount) {
    
  •     revert TSwapPool__OutputTooLow(outputAmount, minOutputAmount);
    
  •   if (output < minOutputAmount) {
    
  •  revert TSwapPool__OutputTooLow(outputAmount, minOutputAmount);
      }
    
  •   _swap(inputToken, inputAmount, outputToken, outputAmount);
    
  • _swap(inputToken, inputAmount, outputToken, output);
    

    }

Updates

Appeal created

inallhonesty Lead Judge 12 months ago
Submission Judgement Published
Validated
Assigned finding tags:

Default value returned by TSwapPool::swapExactInput results in incorrect return value given

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.