Add fix for the approve() mitigation.
This commit is contained in:
@ -29,6 +29,13 @@ contract StandardToken is BasicToken, ERC20 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function approve(address _spender, uint _value) {
|
function approve(address _spender, uint _value) {
|
||||||
|
|
||||||
|
// To change the approve amount you first have to reduce the addresses`
|
||||||
|
// allowance to zero by calling `approve(_spender,0)` if it is not
|
||||||
|
// already 0 to mitigate the race condition described here:
|
||||||
|
// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
|
||||||
|
if ((_amount!=0) && (allowed[msg.sender][_spender] !=0)) throw;
|
||||||
|
|
||||||
allowed[msg.sender][_spender] = _value;
|
allowed[msg.sender][_spender] = _value;
|
||||||
Approval(msg.sender, _spender, _value);
|
Approval(msg.sender, _spender, _value);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user