Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
openzeppelin-contracts-upgradeable
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
俞永鹏
openzeppelin-contracts-upgradeable
Commits
82ca3857
Commit
82ca3857
authored
Jun 26, 2017
by
Manuel Aráoz
Committed by
GitHub
Jun 26, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #277 from frangio/fix-261
Remove all checks for short address attack
parents
79b3a1b1
e33d9bb4
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
2 additions
and
12 deletions
+2
-12
BasicToken.sol
contracts/token/BasicToken.sol
+1
-11
StandardToken.sol
contracts/token/StandardToken.sol
+1
-1
No files found.
contracts/token/BasicToken.sol
View file @
82ca3857
...
@@ -15,21 +15,11 @@ contract BasicToken is ERC20Basic {
...
@@ -15,21 +15,11 @@ contract BasicToken is ERC20Basic {
mapping(address => uint256) balances;
mapping(address => uint256) balances;
/**
/**
* @dev Fix for the ERC20 short address attack.
*/
modifier onlyPayloadSize(uint256 size) {
if(msg.data.length < size + 4) {
throw;
}
_;
}
/**
* @dev transfer token for a specified address
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
* @param _value The amount to be transferred.
*/
*/
function transfer(address _to, uint256 _value)
onlyPayloadSize(2 * 32)
{
function transfer(address _to, uint256 _value) {
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
Transfer(msg.sender, _to, _value);
...
...
contracts/token/StandardToken.sol
View file @
82ca3857
...
@@ -23,7 +23,7 @@ contract StandardToken is BasicToken, ERC20 {
...
@@ -23,7 +23,7 @@ contract StandardToken is BasicToken, ERC20 {
* @param _to address The address which you want to transfer to
* @param _to address The address which you want to transfer to
* @param _value uint256 the amout of tokens to be transfered
* @param _value uint256 the amout of tokens to be transfered
*/
*/
function transferFrom(address _from, address _to, uint256 _value)
onlyPayloadSize(3 * 32)
{
function transferFrom(address _from, address _to, uint256 _value) {
var _allowance = allowed[_from][msg.sender];
var _allowance = allowed[_from][msg.sender];
// Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
// Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment