mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
fix: fixes reentrancy issue on LendingPoolCollateralManager
This commit is contained in:
parent
61c2273a99
commit
391841190c
|
@ -150,8 +150,9 @@ contract LendingPoolCollateralManager is
|
|||
// If the liquidator reclaims the underlying asset, we make sure there is enough available liquidity in the
|
||||
// collateral reserve
|
||||
if (!receiveAToken) {
|
||||
uint256 currentAvailableCollateral =
|
||||
IERC20(collateralAsset).balanceOf(address(vars.collateralAtoken));
|
||||
uint256 currentAvailableCollateral = IERC20(collateralAsset).balanceOf(
|
||||
address(vars.collateralAtoken)
|
||||
);
|
||||
if (currentAvailableCollateral < vars.maxCollateralToLiquidate) {
|
||||
return (
|
||||
uint256(Errors.CollateralManagerErrors.NOT_ENOUGH_LIQUIDITY),
|
||||
|
@ -190,6 +191,13 @@ contract LendingPoolCollateralManager is
|
|||
0
|
||||
);
|
||||
|
||||
// If the collateral being liquidated is equal to the user balance,
|
||||
// we set the currency as not being used as collateral anymore
|
||||
if (vars.maxCollateralToLiquidate == vars.userCollateralBalance) {
|
||||
userConfig.setUsingAsCollateral(collateralReserve.id, false);
|
||||
emit ReserveUsedAsCollateralDisabled(collateralAsset, user);
|
||||
}
|
||||
|
||||
if (receiveAToken) {
|
||||
vars.liquidatorPreviousATokenBalance = IERC20(vars.collateralAtoken).balanceOf(msg.sender);
|
||||
vars.collateralAtoken.transferOnLiquidation(user, msg.sender, vars.maxCollateralToLiquidate);
|
||||
|
@ -217,13 +225,6 @@ contract LendingPoolCollateralManager is
|
|||
);
|
||||
}
|
||||
|
||||
// If the collateral being liquidated is equal to the user balance,
|
||||
// we set the currency as not being used as collateral anymore
|
||||
if (vars.maxCollateralToLiquidate == vars.userCollateralBalance) {
|
||||
userConfig.setUsingAsCollateral(collateralReserve.id, false);
|
||||
emit ReserveUsedAsCollateralDisabled(collateralAsset, user);
|
||||
}
|
||||
|
||||
// Transfers the debt asset being repaid to the aToken, where the liquidity is kept
|
||||
IERC20(debtAsset).safeTransferFrom(
|
||||
msg.sender,
|
||||
|
|
Loading…
Reference in New Issue
Block a user