aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-05-03 17:54:12 +0800
committerGitHub <noreply@github.com>2017-05-03 17:54:11 +0800
commit00933b99cc64a5af1e00ed4b119fc725ddbb3513 (patch)
treef9c9abfb8a0e944f342f1d0a0fb11d6a55b9a352 /docs
parent1aa0f77af91143b0a083949e230dab9e0376ed65 (diff)
parent794a390c34d44e9f93d9735a82aa11f8cc2fde48 (diff)
downloaddexon-solidity-00933b99cc64a5af1e00ed4b119fc725ddbb3513.tar
dexon-solidity-00933b99cc64a5af1e00ed4b119fc725ddbb3513.tar.gz
dexon-solidity-00933b99cc64a5af1e00ed4b119fc725ddbb3513.tar.bz2
dexon-solidity-00933b99cc64a5af1e00ed4b119fc725ddbb3513.tar.lz
dexon-solidity-00933b99cc64a5af1e00ed4b119fc725ddbb3513.tar.xz
dexon-solidity-00933b99cc64a5af1e00ed4b119fc725ddbb3513.tar.zst
dexon-solidity-00933b99cc64a5af1e00ed4b119fc725ddbb3513.zip
Merge pull request #2206 from ethereum/fixoptimizer
Constant optimizer fix
Diffstat (limited to 'docs')
-rw-r--r--docs/bugs.json11
-rw-r--r--docs/bugs_by_version.json41
2 files changed, 48 insertions, 4 deletions
diff --git a/docs/bugs.json b/docs/bugs.json
index 2a8d167a..78fcf06b 100644
--- a/docs/bugs.json
+++ b/docs/bugs.json
@@ -1,5 +1,16 @@
[
{
+ "name": "ConstantOptimizerSubtraction",
+ "summary": "In some situations, the optimizer replaces certain numbers in the code with routines that compute different numbers.",
+ "description": "The optimizer tries to represent any number in the bytecode by routines that compute them with less gas. For some special numbers, an incorrect routine is generated. This could allow an attacker to e.g. trick victims about a specific amount of ether, or function calls to call different functions (or none at all).",
+ "link": "https://blog.ethereum.org/2017/04/24/solidity-optimizer-bug/",
+ "fixed": "0.4.11",
+ "severity": "low",
+ "conditions": {
+ "optimizer": true
+ }
+ },
+ {
"name": "IdentityPrecompileReturnIgnored",
"summary": "Failure of the identity precompile was ignored.",
"description": "Calls to the identity contract, which is used for copying memory, ignored its return value. On the public chain, calls to the identity precompile can be made in a way that they never fail, but this might be different on private chains.",
diff --git a/docs/bugs_by_version.json b/docs/bugs_by_version.json
index 64015d4a..7fbca437 100644
--- a/docs/bugs_by_version.json
+++ b/docs/bugs_by_version.json
@@ -1,6 +1,7 @@
{
"0.1.0": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"OptimizerStaleKnowledgeAboutSHA3",
"SendFailsForZeroEther",
@@ -14,6 +15,7 @@
},
"0.1.1": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"OptimizerStaleKnowledgeAboutSHA3",
"SendFailsForZeroEther",
@@ -27,6 +29,7 @@
},
"0.1.2": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"OptimizerStaleKnowledgeAboutSHA3",
"SendFailsForZeroEther",
@@ -40,6 +43,7 @@
},
"0.1.3": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"OptimizerStaleKnowledgeAboutSHA3",
"SendFailsForZeroEther",
@@ -53,6 +57,7 @@
},
"0.1.4": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"OptimizerStaleKnowledgeAboutSHA3",
"SendFailsForZeroEther",
@@ -66,6 +71,7 @@
},
"0.1.5": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"OptimizerStaleKnowledgeAboutSHA3",
"SendFailsForZeroEther",
@@ -79,6 +85,7 @@
},
"0.1.6": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -93,6 +100,7 @@
},
"0.1.7": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -107,6 +115,7 @@
},
"0.2.0": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -121,6 +130,7 @@
},
"0.2.1": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -135,6 +145,7 @@
},
"0.2.2": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -149,6 +160,7 @@
},
"0.3.0": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -162,6 +174,7 @@
},
"0.3.1": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -174,6 +187,7 @@
},
"0.3.2": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -186,6 +200,7 @@
},
"0.3.3": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -197,6 +212,7 @@
},
"0.3.4": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -208,6 +224,7 @@
},
"0.3.5": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -219,6 +236,7 @@
},
"0.3.6": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -228,6 +246,7 @@
},
"0.4.0": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -237,6 +256,7 @@
},
"0.4.1": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3",
@@ -245,11 +265,14 @@
"released": "2016-09-09"
},
"0.4.10": {
- "bugs": [],
+ "bugs": [
+ "ConstantOptimizerSubtraction"
+ ],
"released": "2017-03-15"
},
"0.4.2": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage",
"OptimizerStaleKnowledgeAboutSHA3"
@@ -258,6 +281,7 @@
},
"0.4.3": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"HighOrderByteCleanStorage"
],
@@ -265,12 +289,14 @@
},
"0.4.4": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored"
],
"released": "2016-10-31"
},
"0.4.5": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored",
"OptimizerStateKnowledgeNotResetForJumpdest"
],
@@ -278,20 +304,27 @@
},
"0.4.6": {
"bugs": [
+ "ConstantOptimizerSubtraction",
"IdentityPrecompileReturnIgnored"
],
"released": "2016-11-22"
},
"0.4.7": {
- "bugs": [],
+ "bugs": [
+ "ConstantOptimizerSubtraction"
+ ],
"released": "2016-12-15"
},
"0.4.8": {
- "bugs": [],
+ "bugs": [
+ "ConstantOptimizerSubtraction"
+ ],
"released": "2017-01-13"
},
"0.4.9": {
- "bugs": [],
+ "bugs": [
+ "ConstantOptimizerSubtraction"
+ ],
"released": "2017-01-31"
}
} \ No newline at end of file