Use bytes encoding to make the mapping

pull/381/head
Nikhil Parasaram 6 years ago
parent 7fc3396d36
commit b7f86f13f8
  1. 4
      mythril/ether/soliditycontract.py
  2. 2
      mythril/support/truffle.py

@ -3,6 +3,7 @@ from mythril.ether.ethcontract import ETHContract
from mythril.ether.util import * from mythril.ether.util import *
from mythril.exceptions import NoContractFoundError from mythril.exceptions import NoContractFoundError
class SourceMapping: class SourceMapping:
def __init__(self, solidity_file_idx, offset, length, lineno): 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: if len(mapping) > 2 and len(mapping[2]) > 0:
idx = int(mapping[2]) idx = int(mapping[2])
lineno = self.solidity_files[idx].data.encode('utf-8')[0:offset].count('\n'.encode('utf-8')) + 1
lineno = self.solidity_files[idx].data[0:offset].count('\n') + 1
self.mappings.append(SourceMapping(idx, offset, length, lineno)) self.mappings.append(SourceMapping(idx, offset, length, lineno))

@ -76,7 +76,7 @@ def analyze_truffle_project(args):
if len(mapping) > 2 and len(mapping[2]) > 0: if len(mapping) > 2 and len(mapping[2]) > 0:
idx = int(mapping[2]) 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)) mappings.append(SourceMapping(idx, offset, length, lineno))

Loading…
Cancel
Save