From 59aa4c775da99c9a6d94b04dddb462a3355ef0be Mon Sep 17 00:00:00 2001 From: Nathan Date: Thu, 14 Feb 2019 08:48:55 -0500 Subject: [PATCH 1/4] Fix typo of DEPRICATED to DEPRECATED --- docs/source/wiki.rst | 0 mythril/analysis/modules/deprecated_ops.py | 8 ++++---- mythril/analysis/swc_data.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 docs/source/wiki.rst diff --git a/docs/source/wiki.rst b/docs/source/wiki.rst new file mode 100644 index 00000000..e69de29b diff --git a/mythril/analysis/modules/deprecated_ops.py b/mythril/analysis/modules/deprecated_ops.py index 9eca59c4..a23b55bd 100644 --- a/mythril/analysis/modules/deprecated_ops.py +++ b/mythril/analysis/modules/deprecated_ops.py @@ -1,6 +1,6 @@ """This module contains the detection code for deprecated op codes.""" from mythril.analysis.report import Issue -from mythril.analysis.swc_data import DEPRICATED_FUNCTIONS_USAGE +from mythril.analysis.swc_data import DEPRECATED_FUNCTIONS_USAGE from mythril.analysis.modules.base import DetectionModule from mythril.laser.ethereum.state.global_state import GlobalState import logging @@ -33,7 +33,7 @@ def _analyze_state(state): node.function_name ) ) - swc_id = DEPRICATED_FUNCTIONS_USAGE + swc_id = DEPRECATED_FUNCTIONS_USAGE elif instruction["opcode"] == "CALLCODE": log.debug("CALLCODE in function " + node.function_name) @@ -44,7 +44,7 @@ def _analyze_state(state): "Due to a bug in the implementation it does not persist sender and value over the call. It was " "therefore deprecated and may be removed in the future. Use the delegatecall method instead." ) - swc_id = DEPRICATED_FUNCTIONS_USAGE + swc_id = DEPRECATED_FUNCTIONS_USAGE issue = Issue( contract=node.contract_name, @@ -68,7 +68,7 @@ class DeprecatedOperationsModule(DetectionModule): """""" super().__init__( name="Deprecated Operations", - swc_id=DEPRICATED_FUNCTIONS_USAGE, + swc_id=DEPRECATED_FUNCTIONS_USAGE, description=DESCRIPTION, entrypoint="callback", pre_hooks=["ORIGIN", "CALLCODE"], diff --git a/mythril/analysis/swc_data.py b/mythril/analysis/swc_data.py index 0462d482..82c51cab 100644 --- a/mythril/analysis/swc_data.py +++ b/mythril/analysis/swc_data.py @@ -11,7 +11,7 @@ REENTRANCY = "107" DEFAULT_STATE_VARIABLE_VISIBILITY = "108" UNINITIALIZED_STORAGE_POINTER = "109" ASSERT_VIOLATION = "110" -DEPRICATED_FUNCTIONS_USAGE = "111" +DEPRECATED_FUNCTIONS_USAGE = "111" DELEGATECALL_TO_UNTRUSTED_CONTRACT = "112" MULTIPLE_SENDS = "113" TX_ORDER_DEPENDENCE = "114" From 8b5ac37af73ecd568e69f0680e44cb3cfc85970b Mon Sep 17 00:00:00 2001 From: JoranHonig Date: Fri, 15 Feb 2019 10:41:11 +0100 Subject: [PATCH 2/4] change concolic to symbolic --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d0c6cdfb..770cfa51 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ [![Sonarcloud - Maintainability](https://sonarcloud.io/api/project_badges/measure?project=mythril&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=mythril) [![Downloads](https://pepy.tech/badge/mythril)](https://pepy.tech/project/mythril) -Mythril Classic is an open-source security analysis tool for Ethereum smart contracts. It uses concolic analysis, taint analysis and control flow checking to detect a variety of security vulnerabilities. +Mythril Classic is an open-source security analysis tool for Ethereum smart contracts. It uses symbolic analysis, taint analysis and control flow checking to detect a variety of security vulnerabilities. If you a smart contract developer who wants convenience and comprehensive results, you should be using [MythX](https://mythx.io), our next-gen smart contract security API that [integrates with Truffle Framework](https://github.com/ConsenSys/truffle-security) and other development environments. From d229c0b309e848651aee48b8d534a7eb889842f7 Mon Sep 17 00:00:00 2001 From: Bernhard Mueller Date: Mon, 18 Feb 2019 13:45:02 +0700 Subject: [PATCH 3/4] Fix a couple of typos --- mythril/analysis/modules/delegatecall.py | 2 +- mythril/analysis/modules/external_calls.py | 2 +- .../outputs_expected/calls.sol.o.json | 2 +- .../outputs_expected/calls.sol.o.jsonv2 | 276 ++++++++++-------- .../outputs_expected/calls.sol.o.markdown | 2 +- .../outputs_expected/calls.sol.o.text | 2 +- .../kinds_of_calls.sol.o.json | 2 +- .../kinds_of_calls.sol.o.jsonv2 | 180 ++++++------ .../kinds_of_calls.sol.o.markdown | 2 +- .../kinds_of_calls.sol.o.text | 2 +- 10 files changed, 251 insertions(+), 221 deletions(-) diff --git a/mythril/analysis/modules/delegatecall.py b/mythril/analysis/modules/delegatecall.py index 9ebfcd17..fb72c93e 100644 --- a/mythril/analysis/modules/delegatecall.py +++ b/mythril/analysis/modules/delegatecall.py @@ -85,7 +85,7 @@ def _concrete_call( title="Delegatecall Proxy", severity="Low", description_head="The contract implements a delegatecall proxy.", - description_tail="The smart contract forwards the received calldata via delegatecall. Note that callers" + description_tail="The smart contract forwards the received calldata via delegatecall. Note that callers " "can execute arbitrary functions in the callee contract and that the callee contract " "can access the storage of the calling contract. " "Make sure that the callee contract is audited properly.", diff --git a/mythril/analysis/modules/external_calls.py b/mythril/analysis/modules/external_calls.py index 09828267..00545bc1 100644 --- a/mythril/analysis/modules/external_calls.py +++ b/mythril/analysis/modules/external_calls.py @@ -51,7 +51,7 @@ def _analyze_state(state): description_tail = ( "The callee address of an external message call can be set by " "the caller. Note that the callee can contain arbitrary code and may re-enter any function " - "in this contract. Review the business logic carefully to prevent averse effects on the" + "in this contract. Review the business logic carefully to prevent averse effects on the " "contract state." ) diff --git a/tests/testdata/outputs_expected/calls.sol.o.json b/tests/testdata/outputs_expected/calls.sol.o.json index 7086d59d..40f93d02 100644 --- a/tests/testdata/outputs_expected/calls.sol.o.json +++ b/tests/testdata/outputs_expected/calls.sol.o.json @@ -83,7 +83,7 @@ "address": 912, "contract": "Unknown", "debug": "", - "description": "A call to a user-supplied address is executed.\nThe callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state.", + "description": "A call to a user-supplied address is executed.\nThe callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state.", "function": "calluseraddress(address)", "max_gas_used": 616, "min_gas_used": 335, diff --git a/tests/testdata/outputs_expected/calls.sol.o.jsonv2 b/tests/testdata/outputs_expected/calls.sol.o.jsonv2 index 431b4cd4..67c4957d 100644 --- a/tests/testdata/outputs_expected/calls.sol.o.jsonv2 +++ b/tests/testdata/outputs_expected/calls.sol.o.jsonv2 @@ -1,132 +1,150 @@ [ - { - "issues": [ - { - "description": { - "head": "The contract executes an external message call.", - "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "661:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-107", - "swcTitle": "Reentrancy" - }, - { - "description": { - "head": "The contract executes an external message call.", - "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "779:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-107", - "swcTitle": "Reentrancy" - }, - { - "description": { - "head": "The contract executes an external message call.", - "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "858:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-107", - "swcTitle": "Reentrancy" - }, - { - "description": { - "head": "A call to a user-supplied address is executed.", - "tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "912:1:0" - } - ], - "severity": "Medium", - "swcID": "SWC-107", - "swcTitle": "Reentrancy" - }, - { - "description": { - "head": "The return value of a message call is not checked.", - "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "661:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-104", - "swcTitle": "Unchecked Call Return Value" - }, - { - "description": { - "head": "The return value of a message call is not checked.", - "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "779:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-104", - "swcTitle": "Unchecked Call Return Value" - }, - { - "description": { - "head": "The return value of a message call is not checked.", - "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "858:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-104", - "swcTitle": "Unchecked Call Return Value" - }, - { - "description": { - "head": "The return value of a message call is not checked.", - "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "912:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-104", - "swcTitle": "Unchecked Call Return Value" - } + { + "issues": [ + { + "description": { + "head": "The contract executes an external message call.", + "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "661:1:0" + } ], - "meta": {}, - "sourceFormat": "evm-byzantium-bytecode", - "sourceList": [ - "0x7cbb77986c6b1bf6e945cd3fba06d3ea3d28cfc49cdfdc9571ec30703ac5862f" + "severity": "Low", + "swcID": "SWC-107", + "swcTitle": "Reentrancy" + }, + { + "description": { + "head": "The contract executes an external message call.", + "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "779:1:0" + } ], - "sourceType": "raw-bytecode" - } -] \ No newline at end of file + "severity": "Low", + "swcID": "SWC-107", + "swcTitle": "Reentrancy" + }, + { + "description": { + "head": "The contract executes an external message call.", + "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "858:1:0" + } + ], + "severity": "Low", + "swcID": "SWC-107", + "swcTitle": "Reentrancy" + }, + { + "description": { + "head": "A call to a user-supplied address is executed.", + "tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "912:1:0" + } + ], + "severity": "Medium", + "swcID": "SWC-107", + "swcTitle": "Reentrancy" + }, + { + "description": { + "head": "The return value of a message call is not checked.", + "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "661:1:0" + } + ], + "severity": "Low", + "swcID": "SWC-104", + "swcTitle": "Unchecked Call Return Value" + }, + { + "description": { + "head": "The return value of a message call is not checked.", + "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "779:1:0" + } + ], + "severity": "Low", + "swcID": "SWC-104", + "swcTitle": "Unchecked Call Return Value" + }, + { + "description": { + "head": "The return value of a message call is not checked.", + "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "858:1:0" + } + ], + "severity": "Low", + "swcID": "SWC-104", + "swcTitle": "Unchecked Call Return Value" + }, + { + "description": { + "head": "The return value of a message call is not checked.", + "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "912:1:0" + } + ], + "severity": "Low", + "swcID": "SWC-104", + "swcTitle": "Unchecked Call Return Value" + } + ], + "meta": { + + }, + "sourceFormat": "evm-byzantium-bytecode", + "sourceList": [ + "0x7cbb77986c6b1bf6e945cd3fba06d3ea3d28cfc49cdfdc9571ec30703ac5862f" + ], + "sourceType": "raw-bytecode" + } +] diff --git a/tests/testdata/outputs_expected/calls.sol.o.markdown b/tests/testdata/outputs_expected/calls.sol.o.markdown index 2edd13d7..3ad3e237 100644 --- a/tests/testdata/outputs_expected/calls.sol.o.markdown +++ b/tests/testdata/outputs_expected/calls.sol.o.markdown @@ -89,7 +89,7 @@ External calls return a boolean value. If the callee contract halts with an exce ### Description A call to a user-supplied address is executed. -The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state. +The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state. ## Unchecked Call Return Value - SWC ID: 104 diff --git a/tests/testdata/outputs_expected/calls.sol.o.text b/tests/testdata/outputs_expected/calls.sol.o.text index 9e53ca4e..dfbfa338 100644 --- a/tests/testdata/outputs_expected/calls.sol.o.text +++ b/tests/testdata/outputs_expected/calls.sol.o.text @@ -72,7 +72,7 @@ Function name: calluseraddress(address) PC address: 912 Estimated Gas Usage: 335 - 616 A call to a user-supplied address is executed. -The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state. +The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state. -------------------- ==== Unchecked Call Return Value ==== diff --git a/tests/testdata/outputs_expected/kinds_of_calls.sol.o.json b/tests/testdata/outputs_expected/kinds_of_calls.sol.o.json index 8e595704..180eb4aa 100644 --- a/tests/testdata/outputs_expected/kinds_of_calls.sol.o.json +++ b/tests/testdata/outputs_expected/kinds_of_calls.sol.o.json @@ -44,7 +44,7 @@ "address": 1038, "contract": "Unknown", "debug": "", - "description": "A call to a user-supplied address is executed.\nThe callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state.", + "description": "A call to a user-supplied address is executed.\nThe callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state.", "function": "_function_0xeea4c864", "max_gas_used": 1223, "min_gas_used": 471, diff --git a/tests/testdata/outputs_expected/kinds_of_calls.sol.o.jsonv2 b/tests/testdata/outputs_expected/kinds_of_calls.sol.o.jsonv2 index 81a196af..b53c1d7b 100644 --- a/tests/testdata/outputs_expected/kinds_of_calls.sol.o.jsonv2 +++ b/tests/testdata/outputs_expected/kinds_of_calls.sol.o.jsonv2 @@ -1,87 +1,99 @@ [ - { - "issues": [ - { - "description": { - "head": "Use of callcode is deprecated.", - "tail": "The callcode method executes code of another contract in the context of the caller account. Due to a bug in the implementation it does not persist sender and value over the call. It was therefore deprecated and may be removed in the future. Use the delegatecall method instead." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "618:1:0" - } - ], - "severity": "Medium", - "swcID": "SWC-111", - "swcTitle": "Use of Deprecated Solidity Functions" - }, - { - "description": { - "head": "A call to a user-supplied address is executed.", - "tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "1038:1:0" - } - ], - "severity": "Medium", - "swcID": "SWC-107", - "swcTitle": "Reentrancy" - }, - { - "description": { - "head": "The return value of a message call is not checked.", - "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "618:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-104", - "swcTitle": "Unchecked Call Return Value" - }, - { - "description": { - "head": "The return value of a message call is not checked.", - "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "849:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-104", - "swcTitle": "Unchecked Call Return Value" - }, - { - "description": { - "head": "The return value of a message call is not checked.", - "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." - }, - "extra": {}, - "locations": [ - { - "sourceMap": "1038:1:0" - } - ], - "severity": "Low", - "swcID": "SWC-104", - "swcTitle": "Unchecked Call Return Value" - } + { + "issues": [ + { + "description": { + "head": "Use of callcode is deprecated.", + "tail": "The callcode method executes code of another contract in the context of the caller account. Due to a bug in the implementation it does not persist sender and value over the call. It was therefore deprecated and may be removed in the future. Use the delegatecall method instead." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "618:1:0" + } ], - "meta": {}, - "sourceFormat": "evm-byzantium-bytecode", - "sourceList": [ - "0x6daec61d05d8f1210661e7e7d1ed6d72bd6ade639398fac1e867aff50abfc1c1" + "severity": "Medium", + "swcID": "SWC-111", + "swcTitle": "Use of Deprecated Solidity Functions" + }, + { + "description": { + "head": "A call to a user-supplied address is executed.", + "tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "1038:1:0" + } ], - "sourceType": "raw-bytecode" - } -] \ No newline at end of file + "severity": "Medium", + "swcID": "SWC-107", + "swcTitle": "Reentrancy" + }, + { + "description": { + "head": "The return value of a message call is not checked.", + "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "618:1:0" + } + ], + "severity": "Low", + "swcID": "SWC-104", + "swcTitle": "Unchecked Call Return Value" + }, + { + "description": { + "head": "The return value of a message call is not checked.", + "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "849:1:0" + } + ], + "severity": "Low", + "swcID": "SWC-104", + "swcTitle": "Unchecked Call Return Value" + }, + { + "description": { + "head": "The return value of a message call is not checked.", + "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states." + }, + "extra": { + + }, + "locations": [ + { + "sourceMap": "1038:1:0" + } + ], + "severity": "Low", + "swcID": "SWC-104", + "swcTitle": "Unchecked Call Return Value" + } + ], + "meta": { + + }, + "sourceFormat": "evm-byzantium-bytecode", + "sourceList": [ + "0x6daec61d05d8f1210661e7e7d1ed6d72bd6ade639398fac1e867aff50abfc1c1" + ], + "sourceType": "raw-bytecode" + } +] diff --git a/tests/testdata/outputs_expected/kinds_of_calls.sol.o.markdown b/tests/testdata/outputs_expected/kinds_of_calls.sol.o.markdown index 95011cec..29001c95 100644 --- a/tests/testdata/outputs_expected/kinds_of_calls.sol.o.markdown +++ b/tests/testdata/outputs_expected/kinds_of_calls.sol.o.markdown @@ -50,7 +50,7 @@ External calls return a boolean value. If the callee contract halts with an exce ### Description A call to a user-supplied address is executed. -The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state. +The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state. ## Unchecked Call Return Value - SWC ID: 104 diff --git a/tests/testdata/outputs_expected/kinds_of_calls.sol.o.text b/tests/testdata/outputs_expected/kinds_of_calls.sol.o.text index 1c922c71..40db8117 100644 --- a/tests/testdata/outputs_expected/kinds_of_calls.sol.o.text +++ b/tests/testdata/outputs_expected/kinds_of_calls.sol.o.text @@ -39,7 +39,7 @@ Function name: _function_0xeea4c864 PC address: 1038 Estimated Gas Usage: 471 - 1223 A call to a user-supplied address is executed. -The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state. +The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on the contract state. -------------------- ==== Unchecked Call Return Value ==== From 50885dd83870212111d883edb8eeb9cd7708f160 Mon Sep 17 00:00:00 2001 From: Nikhil Parasaram Date: Mon, 18 Feb 2019 21:54:11 +0530 Subject: [PATCH 4/4] increase max depth to 50 and move to bfs --- mythril/interfaces/cli.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mythril/interfaces/cli.py b/mythril/interfaces/cli.py index 5334eb4b..7ea614b8 100644 --- a/mythril/interfaces/cli.py +++ b/mythril/interfaces/cli.py @@ -165,14 +165,14 @@ def main(): options.add_argument( "--max-depth", type=int, - default=22, + default=50, help="Maximum recursion depth for symbolic execution", ) options.add_argument( "--strategy", choices=["dfs", "bfs", "naive-random", "weighted-random"], - default="dfs", + default="bfs", help="Symbolic execution strategy", ) options.add_argument( @@ -280,7 +280,7 @@ def main(): ) if args.query_signature: - if sigs.ethereum_input_decoder == None: + if sigs.ethereum_input_decoder is None: exit_with_error( args.outform, "The --query-signature function requires the python package ethereum-input-decoder",