Forward-port 0.4.26 release notes and update bug list.

This commit is contained in:
chriseth
2019-04-30 11:31:12 +02:00
parent 39d153b7a1
commit ecb8dfb26c
3 changed files with 110 additions and 64 deletions
+31 -3
View File
@@ -3,30 +3,58 @@
"name": "UninitializedFunctionPointerInConstructor",
"summary": "Calling uninitialized internal function pointers created in the constructor does not always revert and can cause unexpected behaviour.",
"description": "Uninitialized internal function pointers point to a special piece of code that causes a revert when called. Jump target positions are different during construction and after deployment, but the code for setting this special jump target only considered the situation after deployment.",
"introduced": "0.4.5",
"introduced": "0.5.0",
"fixed": "0.5.8",
"severity": "very low"
},
{
"name": "UninitializedFunctionPointerInConstructor_0.4.x",
"summary": "Calling uninitialized internal function pointers created in the constructor does not always revert and can cause unexpected behaviour.",
"description": "Uninitialized internal function pointers point to a special piece of code that causes a revert when called. Jump target positions are different during construction and after deployment, but the code for setting this special jump target only considered the situation after deployment.",
"introduced": "0.4.5",
"fixed": "0.4.26",
"severity": "very low"
},
{
"name": "IncorrectEventSignatureInLibraries",
"summary": "Contract types used in events in libraries cause an incorrect event signature hash",
"description": "Instead of using the type `address` in the hashed signature, the actual contract name was used, leading to a wrong hash in the logs.",
"introduced": "0.3.0",
"introduced": "0.5.0",
"fixed": "0.5.8",
"severity": "very low"
},
{
"name": "IncorrectEventSignatureInLibraries_0.4.x",
"summary": "Contract types used in events in libraries cause an incorrect event signature hash",
"description": "Instead of using the type `address` in the hashed signature, the actual contract name was used, leading to a wrong hash in the logs.",
"introduced": "0.3.0",
"fixed": "0.4.26",
"severity": "very low"
},
{
"name": "ABIEncoderV2PackedStorage",
"summary": "Storage structs and arrays with types shorter than 32 bytes can cause data corruption if encoded directly from storage using the experimental ABIEncoderV2.",
"description": "Elements of structs and arrays that are shorter than 32 bytes are not properly decoded from storage when encoded directly (i.e. not via a memory type) using ABIEncoderV2. This can cause corruption in the values themselves but can also overwrite other parts of the encoded data.",
"link": "https://blog.ethereum.org/2019/03/26/solidity-optimizer-and-abiencoderv2-bug/",
"introduced": "0.4.19",
"introduced": "0.5.0",
"fixed": "0.5.7",
"severity": "low",
"conditions": {
"ABIEncoderV2": true
}
},
{
"name": "ABIEncoderV2PackedStorage_0.4.x",
"summary": "Storage structs and arrays with types shorter than 32 bytes can cause data corruption if encoded directly from storage using the experimental ABIEncoderV2.",
"description": "Elements of structs and arrays that are shorter than 32 bytes are not properly decoded from storage when encoded directly (i.e. not via a memory type) using ABIEncoderV2. This can cause corruption in the values themselves but can also overwrite other parts of the encoded data.",
"link": "https://blog.ethereum.org/2019/03/26/solidity-optimizer-and-abiencoderv2-bug/",
"introduced": "0.4.19",
"fixed": "0.4.26",
"severity": "low",
"conditions": {
"ABIEncoderV2": true
}
},
{
"name": "IncorrectByteInstructionOptimization",
"summary": "The optimizer incorrectly handles byte opcodes whose second argument is 31 or a constant expression that evaluates to 31. This can result in unexpected values.",
+65 -61
View File
@@ -211,7 +211,7 @@
},
"0.3.0": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -232,7 +232,7 @@
},
"0.3.1": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -252,7 +252,7 @@
},
"0.3.2": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -272,7 +272,7 @@
},
"0.3.3": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -291,7 +291,7 @@
},
"0.3.4": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -310,7 +310,7 @@
},
"0.3.5": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -329,7 +329,7 @@
},
"0.3.6": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -346,7 +346,7 @@
},
"0.4.0": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -363,7 +363,7 @@
},
"0.4.1": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -380,8 +380,8 @@
},
"0.4.10": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -394,8 +394,8 @@
},
"0.4.11": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -407,8 +407,8 @@
},
"0.4.12": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -419,8 +419,8 @@
},
"0.4.13": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -431,8 +431,8 @@
},
"0.4.14": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -442,8 +442,8 @@
},
"0.4.15": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector"
@@ -452,8 +452,8 @@
},
"0.4.16": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector"
@@ -462,8 +462,8 @@
},
"0.4.17": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"EventStructWrongData",
"NestedArrayFunctionCallDecoder",
@@ -473,8 +473,8 @@
},
"0.4.18": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"EventStructWrongData",
"NestedArrayFunctionCallDecoder"
@@ -483,9 +483,9 @@
},
"0.4.19": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"ABIEncoderV2PackedStorage",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ABIEncoderV2PackedStorage_0.4.x",
"ExpExponentCleanup",
"EventStructWrongData",
"NestedArrayFunctionCallDecoder"
@@ -494,7 +494,7 @@
},
"0.4.2": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -510,9 +510,9 @@
},
"0.4.20": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"ABIEncoderV2PackedStorage",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ABIEncoderV2PackedStorage_0.4.x",
"ExpExponentCleanup",
"EventStructWrongData",
"NestedArrayFunctionCallDecoder"
@@ -521,9 +521,9 @@
},
"0.4.21": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"ABIEncoderV2PackedStorage",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ABIEncoderV2PackedStorage_0.4.x",
"ExpExponentCleanup",
"EventStructWrongData",
"NestedArrayFunctionCallDecoder"
@@ -532,9 +532,9 @@
},
"0.4.22": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"ABIEncoderV2PackedStorage",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ABIEncoderV2PackedStorage_0.4.x",
"ExpExponentCleanup",
"EventStructWrongData",
"OneOfTwoConstructorsSkipped"
@@ -543,9 +543,9 @@
},
"0.4.23": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"ABIEncoderV2PackedStorage",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ABIEncoderV2PackedStorage_0.4.x",
"ExpExponentCleanup",
"EventStructWrongData"
],
@@ -553,9 +553,9 @@
},
"0.4.24": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"ABIEncoderV2PackedStorage",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ABIEncoderV2PackedStorage_0.4.x",
"ExpExponentCleanup",
"EventStructWrongData"
],
@@ -563,15 +563,19 @@
},
"0.4.25": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"ABIEncoderV2PackedStorage"
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ABIEncoderV2PackedStorage_0.4.x"
],
"released": "2018-09-12"
},
"0.4.26": {
"bugs": [],
"released": "2019-04-29"
},
"0.4.3": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -586,7 +590,7 @@
},
"0.4.4": {
"bugs": [
"IncorrectEventSignatureInLibraries",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -600,8 +604,8 @@
},
"0.4.5": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -616,8 +620,8 @@
},
"0.4.6": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -631,8 +635,8 @@
},
"0.4.7": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -645,8 +649,8 @@
},
"0.4.8": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",
@@ -659,8 +663,8 @@
},
"0.4.9": {
"bugs": [
"UninitializedFunctionPointerInConstructor",
"IncorrectEventSignatureInLibraries",
"UninitializedFunctionPointerInConstructor_0.4.x",
"IncorrectEventSignatureInLibraries_0.4.x",
"ExpExponentCleanup",
"NestedArrayFunctionCallDecoder",
"ZeroFunctionSelector",