Merge pull request #381 from norhh/bugfix/376

Use bytes encoding to make the mapping
pull/385/head
Nikhil Parasaram 6 years ago committed by GitHub
commit f5b33b2fd0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      mythril/ether/soliditycontract.py
  2. 4
      mythril/support/truffle.py

@ -3,6 +3,7 @@ from mythril.ether.ethcontract import ETHContract
from mythril.ether.util import *
from mythril.exceptions import NoContractFoundError
class SourceMapping:
def __init__(self, solidity_file_idx, offset, length, lineno):
@ -91,8 +92,7 @@ class SolidityContract(ETHContract):
if len(mapping) > 2 and len(mapping[2]) > 0:
idx = int(mapping[2])
lineno = self.solidity_files[idx].data[0:offset].count('\n') + 1
lineno = self.solidity_files[idx].data.encode('utf-8')[0:offset].count('\n'.encode('utf-8')) + 1
self.mappings.append(SourceMapping(idx, offset, length, lineno))
@ -109,7 +109,7 @@ class SolidityContract(ETHContract):
offset = self.mappings[index].offset
length = self.mappings[index].length
code = solidity_file.data[offset:offset + length]
code = solidity_file.data.encode('utf-8')[offset:offset + length].decode('utf-8')
lineno = self.mappings[index].lineno
return SourceCodeInfo(filename, lineno, code)

@ -76,7 +76,7 @@ def analyze_truffle_project(args):
if len(mapping) > 2 and len(mapping[2]) > 0:
idx = int(mapping[2])
lineno = source[0:offset].count('\n') + 1
lineno = source.encode('utf-8')[0:offset].count('\n'.encode('utf-8')) + 1
mappings.append(SourceMapping(idx, offset, length, lineno))
@ -90,7 +90,7 @@ def analyze_truffle_project(args):
length = mappings[index].length
issue.filename = filename
issue.code = source[offset:offset + length]
issue.code = source.encode('utf-8')[offset:offset + length].decode('utf-8')
issue.lineno = mappings[index].lineno
except IndexError:
logging.debug("No code mapping at index %d", index)

Loading…
Cancel
Save