Fix function names in CFG

pull/205/head
Bernhard Mueller 7 years ago
parent 1e2de07f46
commit 141fec3d11
  1. 5
      mythril/analysis/callgraph.py
  2. 3
      solidity_examples/ether_send.sol
  3. 3
      tests/testdata/input_contracts/ether_send.sol
  4. 2
      tests/testdata/inputs/ether_send.sol.o
  5. 716
      tests/testdata/outputs_expected/ether_send.sol.o.easm
  6. 4
      tests/testdata/outputs_expected/ether_send.sol.o.graph.html
  7. 4
      tests/testdata/outputs_expected/ether_send.sol.o.json
  8. 4
      tests/testdata/outputs_expected/ether_send.sol.o.markdown
  9. 4
      tests/testdata/outputs_expected/ether_send.sol.o.text

@ -1,6 +1,7 @@
import re import re
from jinja2 import Environment, PackageLoader, select_autoescape from jinja2 import Environment, PackageLoader, select_autoescape
from laser.ethereum.svm import NodeFlags
import z3 import z3
default_opts = { default_opts = {
@ -96,8 +97,8 @@ def extract_nodes(statespace, color_map):
for instruction in instructions: for instruction in instructions:
if instruction['opcode'].startswith("PUSH"): if instruction['opcode'].startswith("PUSH"):
code_line = "%d %s %s" % (instruction['address'], instruction['opcode'], instruction['argument']) code_line = "%d %s %s" % (instruction['address'], instruction['opcode'], instruction['argument'])
elif instruction['opcode'].startswith("JUMPDEST"): elif instruction['opcode'].startswith("JUMPDEST") and NodeFlags.FUNC_ENTRY in node.flags and instruction['address'] == node.start_addr:
code_line = "%d %s" % (instruction['address'], node.function_name) code_line = node.function_name
else: else:
code_line = "%d %s" % (instruction['address'], instruction['opcode']) code_line = "%d %s" % (instruction['address'], instruction['opcode'])

@ -28,7 +28,4 @@ contract Crowdfunding {
return balances[msg.sender]; return balances[msg.sender];
} }
function() public payable {
invest();
}
} }

@ -28,7 +28,4 @@ contract Crowdfunding {
return balances[msg.sender]; return balances[msg.sender];
} }
function() public payable {
invest();
}
} }

@ -1 +1 @@
606060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806312065fe01461008257806327e235e3146100ab57806356885cd8146100f85780636c343ffe1461010d5780638da5cb5b14610122578063e8b5e51f14610177575b610080610181565b005b341561008d57600080fd5b6100956101ec565b6040518082815260200191505060405180910390f35b34156100b657600080fd5b6100e2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610232565b6040518082815260200191505060405180910390f35b341561010357600080fd5b61010b61024a565b005b341561011857600080fd5b61012061028d565b005b341561012d57600080fd5b610135610342565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017f610181565b005b60025434118015610193575060035434105b151561019e57600080fd5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60006020528060005260406000206000915090505481565b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102e957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561034057600080fd5b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820bbf8d45345e3ef7004b6445155bc5f20c8a6dc61dec2637ed9f5eb80f5b2ab0a0029 608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806312065fe01461007d57806327e235e3146100a857806356885cd8146100ff5780636c343ffe146101165780638da5cb5b1461012d578063e8b5e51f14610184575b600080fd5b34801561008957600080fd5b5061009261018e565b6040518082815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101d4565b6040518082815260200191505060405180910390f35b34801561010b57600080fd5b506101146101ec565b005b34801561012257600080fd5b5061012b61022f565b005b34801561013957600080fd5b506101426102eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61018c610311565b005b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60006020528060005260406000206000915090505481565b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028b57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156102e8573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025434118015610323575060035434105b151561032e57600080fd5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505600a165627a7a72305820402df619c16e4325eb7830ed063880a283ac25dff982b6a5be67138df0c209550029

@ -1,4 +1,4 @@
0 PUSH1 0x60 0 PUSH1 0x80
2 PUSH1 0x40 2 PUSH1 0x40
4 MSTORE 4 MSTORE
5 PUSH1 0x04 5 PUSH1 0x04
@ -16,383 +16,405 @@
54 DUP1 54 DUP1
55 PUSH4 0x12065fe0 55 PUSH4 0x12065fe0
60 EQ 60 EQ
61 PUSH2 0x0082 61 PUSH2 0x007d
64 JUMPI 64 JUMPI
65 DUP1 65 DUP1
66 PUSH4 0x27e235e3 66 PUSH4 0x27e235e3
71 EQ 71 EQ
72 PUSH2 0x00ab 72 PUSH2 0x00a8
75 JUMPI 75 JUMPI
76 DUP1 76 DUP1
77 PUSH4 0x56885cd8 77 PUSH4 0x56885cd8
82 EQ 82 EQ
83 PUSH2 0x00f8 83 PUSH2 0x00ff
86 JUMPI 86 JUMPI
87 DUP1 87 DUP1
88 PUSH4 0x6c343ffe 88 PUSH4 0x6c343ffe
93 EQ 93 EQ
94 PUSH2 0x010d 94 PUSH2 0x0116
97 JUMPI 97 JUMPI
98 DUP1 98 DUP1
99 PUSH4 0x8da5cb5b 99 PUSH4 0x8da5cb5b
104 EQ 104 EQ
105 PUSH2 0x0122 105 PUSH2 0x012d
108 JUMPI 108 JUMPI
109 DUP1 109 DUP1
110 PUSH4 0xe8b5e51f 110 PUSH4 0xe8b5e51f
115 EQ 115 EQ
116 PUSH2 0x0177 116 PUSH2 0x0184
119 JUMPI 119 JUMPI
120 JUMPDEST 120 JUMPDEST
121 PUSH2 0x0080 121 PUSH1 0x00
124 PUSH2 0x0181 123 DUP1
127 JUMP 124 REVERT
128 JUMPDEST 125 JUMPDEST
129 STOP 126 CALLVALUE
130 JUMPDEST 127 DUP1
131 CALLVALUE 128 ISZERO
132 ISZERO 129 PUSH2 0x0089
133 PUSH2 0x008d 132 JUMPI
136 JUMPI 133 PUSH1 0x00
137 PUSH1 0x00 135 DUP1
139 DUP1 136 REVERT
140 REVERT 137 JUMPDEST
141 JUMPDEST 138 POP
142 PUSH2 0x0095 139 PUSH2 0x0092
145 PUSH2 0x01ec 142 PUSH2 0x018e
148 JUMP 145 JUMP
149 JUMPDEST 146 JUMPDEST
150 PUSH1 0x40 147 PUSH1 0x40
152 MLOAD 149 MLOAD
153 DUP1 150 DUP1
154 DUP3 151 DUP3
155 DUP2 152 DUP2
156 MSTORE 153 MSTORE
157 PUSH1 0x20 154 PUSH1 0x20
159 ADD 156 ADD
160 SWAP2 157 SWAP2
161 POP 158 POP
162 POP 159 POP
163 PUSH1 0x40 160 PUSH1 0x40
165 MLOAD 162 MLOAD
166 DUP1 163 DUP1
167 SWAP2 164 SWAP2
168 SUB 165 SUB
169 SWAP1 166 SWAP1
170 RETURN 167 RETURN
171 JUMPDEST 168 JUMPDEST
172 CALLVALUE 169 CALLVALUE
173 ISZERO 170 DUP1
174 PUSH2 0x00b6 171 ISZERO
177 JUMPI 172 PUSH2 0x00b4
178 PUSH1 0x00 175 JUMPI
180 DUP1 176 PUSH1 0x00
181 REVERT 178 DUP1
182 JUMPDEST 179 REVERT
183 PUSH2 0x00e2 180 JUMPDEST
186 PUSH1 0x04 181 POP
188 DUP1 182 PUSH2 0x00e9
189 DUP1 185 PUSH1 0x04
190 CALLDATALOAD 187 DUP1
191 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 188 CALLDATASIZE
212 AND 189 SUB
213 SWAP1 190 DUP2
214 PUSH1 0x20 191 ADD
216 ADD 192 SWAP1
217 SWAP1 193 DUP1
218 SWAP2 194 DUP1
219 SWAP1 195 CALLDATALOAD
220 POP 196 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
221 POP 217 AND
222 PUSH2 0x0232 218 SWAP1
225 JUMP 219 PUSH1 0x20
226 JUMPDEST 221 ADD
227 PUSH1 0x40 222 SWAP1
229 MLOAD 223 SWAP3
230 DUP1 224 SWAP2
231 DUP3 225 SWAP1
232 DUP2 226 POP
233 MSTORE 227 POP
234 PUSH1 0x20 228 POP
236 ADD 229 PUSH2 0x01d4
237 SWAP2 232 JUMP
238 POP 233 JUMPDEST
239 POP 234 PUSH1 0x40
240 PUSH1 0x40 236 MLOAD
242 MLOAD 237 DUP1
243 DUP1 238 DUP3
239 DUP2
240 MSTORE
241 PUSH1 0x20
243 ADD
244 SWAP2 244 SWAP2
245 SUB 245 POP
246 SWAP1 246 POP
247 RETURN 247 PUSH1 0x40
248 JUMPDEST 249 MLOAD
249 CALLVALUE 250 DUP1
250 ISZERO 251 SWAP2
251 PUSH2 0x0103 252 SUB
254 JUMPI 253 SWAP1
255 PUSH1 0x00 254 RETURN
255 JUMPDEST
256 CALLVALUE
257 DUP1 257 DUP1
258 REVERT 258 ISZERO
259 JUMPDEST 259 PUSH2 0x010b
260 PUSH2 0x010b 262 JUMPI
263 PUSH2 0x024a 263 PUSH1 0x00
266 JUMP 265 DUP1
266 REVERT
267 JUMPDEST 267 JUMPDEST
268 STOP 268 POP
269 JUMPDEST 269 PUSH2 0x0114
270 CALLVALUE 272 PUSH2 0x01ec
271 ISZERO 275 JUMP
272 PUSH2 0x0118 276 JUMPDEST
275 JUMPI 277 STOP
276 PUSH1 0x00 278 JUMPDEST
278 DUP1 279 CALLVALUE
279 REVERT 280 DUP1
280 JUMPDEST 281 ISZERO
281 PUSH2 0x0120 282 PUSH2 0x0122
284 PUSH2 0x028d 285 JUMPI
287 JUMP 286 PUSH1 0x00
288 JUMPDEST 288 DUP1
289 STOP 289 REVERT
290 JUMPDEST 290 JUMPDEST
291 CALLVALUE 291 POP
292 ISZERO 292 PUSH2 0x012b
293 PUSH2 0x012d 295 PUSH2 0x022f
296 JUMPI 298 JUMP
297 PUSH1 0x00 299 JUMPDEST
299 DUP1 300 STOP
300 REVERT
301 JUMPDEST 301 JUMPDEST
302 PUSH2 0x0135 302 CALLVALUE
305 PUSH2 0x0342 303 DUP1
308 JUMP 304 ISZERO
309 JUMPDEST 305 PUSH2 0x0139
310 PUSH1 0x40 308 JUMPI
312 MLOAD 309 PUSH1 0x00
313 DUP1 311 DUP1
314 DUP3 312 REVERT
315 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 313 JUMPDEST
336 AND 314 POP
337 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 315 PUSH2 0x0142
358 AND 318 PUSH2 0x02eb
359 DUP2 321 JUMP
360 MSTORE 322 JUMPDEST
361 PUSH1 0x20 323 PUSH1 0x40
363 ADD 325 MLOAD
364 SWAP2 326 DUP1
365 POP 327 DUP3
366 POP 328 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
367 PUSH1 0x40 349 AND
369 MLOAD 350 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
370 DUP1 371 AND
371 SWAP2 372 DUP2
372 SUB 373 MSTORE
373 SWAP1 374 PUSH1 0x20
374 RETURN 376 ADD
375 JUMPDEST 377 SWAP2
376 PUSH2 0x017f 378 POP
379 PUSH2 0x0181 379 POP
382 JUMP 380 PUSH1 0x40
383 JUMPDEST 382 MLOAD
384 STOP 383 DUP1
385 JUMPDEST 384 SWAP2
386 PUSH1 0x02 385 SUB
388 SLOAD 386 SWAP1
389 CALLVALUE 387 RETURN
390 GT 388 JUMPDEST
391 DUP1 389 PUSH2 0x018c
392 ISZERO 392 PUSH2 0x0311
393 PUSH2 0x0193 395 JUMP
396 JUMPI 396 JUMPDEST
397 POP 397 STOP
398 PUSH1 0x03 398 JUMPDEST
400 SLOAD 399 PUSH1 0x00
401 CALLVALUE 401 DUP1
402 LT 402 PUSH1 0x00
403 JUMPDEST 404 CALLER
404 ISZERO 405 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
405 ISZERO 426 AND
406 PUSH2 0x019e 427 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
409 JUMPI 448 AND
410 PUSH1 0x00 449 DUP2
412 DUP1 450 MSTORE
413 REVERT 451 PUSH1 0x20
414 JUMPDEST 453 ADD
415 CALLVALUE 454 SWAP1
416 PUSH1 0x00 455 DUP2
418 DUP1 456 MSTORE
419 CALLER 457 PUSH1 0x20
420 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 459 ADD
441 AND 460 PUSH1 0x00
442 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 462 SHA3
463 AND 463 SLOAD
464 DUP2 464 SWAP1
465 MSTORE 465 POP
466 PUSH1 0x20 466 SWAP1
468 ADD 467 JUMP
469 SWAP1 468 JUMPDEST
470 DUP2 469 PUSH1 0x00
471 MSTORE 471 PUSH1 0x20
472 PUSH1 0x20 473 MSTORE
474 ADD 474 DUP1
475 PUSH1 0x00 475 PUSH1 0x00
477 SHA3 477 MSTORE
478 PUSH1 0x00 478 PUSH1 0x40
480 DUP3 480 PUSH1 0x00
481 DUP3 482 SHA3
482 SLOAD 483 PUSH1 0x00
483 ADD 485 SWAP2
484 SWAP3
485 POP
486 POP 486 POP
487 DUP2 487 SWAP1
488 SWAP1 488 POP
489 SSTORE 489 SLOAD
490 POP 490 DUP2
491 JUMP 491 JUMP
492 JUMPDEST 492 JUMPDEST
493 PUSH1 0x00 493 CALLER
495 DUP1 494 PUSH1 0x01
496 PUSH1 0x00 496 PUSH1 0x00
498 CALLER 498 PUSH2 0x0100
499 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 501 EXP
520 AND 502 DUP2
521 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 503 SLOAD
542 AND 504 DUP2
543 DUP2 505 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
544 MSTORE 526 MUL
545 PUSH1 0x20 527 NOT
547 ADD 528 AND
548 SWAP1 529 SWAP1
549 DUP2 530 DUP4
550 MSTORE 531 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
551 PUSH1 0x20 552 AND
553 ADD 553 MUL
554 PUSH1 0x00 554 OR
556 SHA3 555 SWAP1
557 SLOAD 556 SSTORE
558 SWAP1 557 POP
559 POP 558 JUMP
560 SWAP1 559 JUMPDEST
561 JUMP 560 PUSH1 0x01
562 JUMPDEST 562 PUSH1 0x00
563 PUSH1 0x00 564 SWAP1
565 PUSH1 0x20 565 SLOAD
567 MSTORE 566 SWAP1
568 DUP1 567 PUSH2 0x0100
569 PUSH1 0x00 570 EXP
571 MSTORE 571 SWAP1
572 PUSH1 0x40 572 DIV
574 PUSH1 0x00 573 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
576 SHA3 594 AND
577 PUSH1 0x00 595 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
579 SWAP2 616 AND
580 POP 617 CALLER
581 SWAP1 618 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
582 POP 639 AND
583 SLOAD 640 EQ
584 DUP2 641 ISZERO
585 JUMP 642 ISZERO
586 JUMPDEST 643 PUSH2 0x028b
587 CALLER 646 JUMPI
588 PUSH1 0x01 647 PUSH1 0x00
590 PUSH1 0x00 649 DUP1
592 PUSH2 0x0100 650 REVERT
595 EXP 651 JUMPDEST
596 DUP2 652 CALLER
597 SLOAD 653 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
598 DUP2 674 AND
599 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 675 PUSH2 0x08fc
620 MUL 678 ADDRESS
621 NOT 679 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
622 AND 700 AND
623 SWAP1 701 BALANCE
624 DUP4 702 SWAP1
625 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 703 DUP2
646 AND 704 ISZERO
647 MUL 705 MUL
648 OR 706 SWAP1
649 SWAP1 707 PUSH1 0x40
650 SSTORE 709 MLOAD
651 POP 710 PUSH1 0x00
652 JUMP 712 PUSH1 0x40
653 JUMPDEST 714 MLOAD
654 PUSH1 0x01 715 DUP1
656 PUSH1 0x00 716 DUP4
658 SWAP1 717 SUB
659 SLOAD 718 DUP2
660 SWAP1 719 DUP6
661 PUSH2 0x0100 720 DUP9
664 EXP 721 DUP9
665 SWAP1 722 CALL
666 DIV 723 SWAP4
667 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 724 POP
688 AND 725 POP
689 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 726 POP
710 AND 727 POP
711 CALLER 728 ISZERO
712 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 729 DUP1
733 AND 730 ISZERO
734 EQ 731 PUSH2 0x02e8
735 ISZERO 734 JUMPI
736 ISZERO 735 RETURNDATASIZE
737 PUSH2 0x02e9 736 PUSH1 0x00
740 JUMPI 738 DUP1
739 RETURNDATACOPY
740 RETURNDATASIZE
741 PUSH1 0x00 741 PUSH1 0x00
743 DUP1 743 REVERT
744 REVERT 744 JUMPDEST
745 JUMPDEST 745 POP
746 CALLER 746 JUMP
747 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 747 JUMPDEST
768 AND 748 PUSH1 0x01
769 PUSH2 0x08fc 750 PUSH1 0x00
772 ADDRESS 752 SWAP1
773 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 753 SLOAD
794 AND 754 SWAP1
795 BALANCE 755 PUSH2 0x0100
796 SWAP1 758 EXP
797 DUP2 759 SWAP1
798 ISZERO 760 DIV
799 MUL 761 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
800 SWAP1 782 AND
801 PUSH1 0x40 783 DUP2
803 MLOAD 784 JUMP
804 PUSH1 0x00 785 JUMPDEST
806 PUSH1 0x40 786 PUSH1 0x02
808 MLOAD 788 SLOAD
809 DUP1 789 CALLVALUE
810 DUP4 790 GT
811 SUB 791 DUP1
812 DUP2 792 ISZERO
813 DUP6 793 PUSH2 0x0323
814 DUP9 796 JUMPI
815 DUP9 797 POP
816 CALL 798 PUSH1 0x03
817 SWAP4 800 SLOAD
818 POP 801 CALLVALUE
819 POP 802 LT
820 POP 803 JUMPDEST
821 POP 804 ISZERO
822 ISZERO 805 ISZERO
823 ISZERO 806 PUSH2 0x032e
824 PUSH2 0x0340 809 JUMPI
827 JUMPI 810 PUSH1 0x00
828 PUSH1 0x00 812 DUP1
830 DUP1 813 REVERT
831 REVERT 814 JUMPDEST
832 JUMPDEST 815 CALLVALUE
833 JUMP 816 PUSH1 0x00
834 JUMPDEST 818 DUP1
835 PUSH1 0x01 819 CALLER
837 PUSH1 0x00 820 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
839 SWAP1 841 AND
840 SLOAD 842 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
841 SWAP1 863 AND
842 PUSH2 0x0100 864 DUP2
845 EXP 865 MSTORE
846 SWAP1 866 PUSH1 0x20
847 DIV 868 ADD
848 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 869 SWAP1
869 AND
870 DUP2 870 DUP2
871 JUMP 871 MSTORE
872 STOP 872 PUSH1 0x20
874 ADD
875 PUSH1 0x00
877 SHA3
878 PUSH1 0x00
880 DUP3
881 DUP3
882 SLOAD
883 ADD
884 SWAP3
885 POP
886 POP
887 DUP2
888 SWAP1
889 SSTORE
890 POP
891 JUMP
892 STOP

File diff suppressed because one or more lines are too long

@ -7,7 +7,7 @@
"description": "In the function `withdrawfunds()` a non-zero amount of Ether is sent to msg.sender.\n\nThere is a check on storage index 1. This storage slot can be written to by calling the function `crowdfunding()`.", "description": "In the function `withdrawfunds()` a non-zero amount of Ether is sent to msg.sender.\n\nThere is a check on storage index 1. This storage slot can be written to by calling the function `crowdfunding()`.",
"function": "withdrawfunds()", "function": "withdrawfunds()",
"type": "Warning", "type": "Warning",
"address": 816, "address": 722,
"debug": "<DEBUG-DATA>" "debug": "<DEBUG-DATA>"
}, },
{ {
@ -15,7 +15,7 @@
"description": "A possible integer overflow exists in the function `invest()`.\nThe addition or multiplication may result in a value higher than the maximum representable integer.", "description": "A possible integer overflow exists in the function `invest()`.\nThe addition or multiplication may result in a value higher than the maximum representable integer.",
"function": "invest()", "function": "invest()",
"type": "Warning", "type": "Warning",
"address": 483, "address": 883,
"debug": "<DEBUG-DATA>" "debug": "<DEBUG-DATA>"
} }
] ]

@ -5,7 +5,7 @@
- Type: Warning - Type: Warning
- Contract: Unknown - Contract: Unknown
- Function name: `withdrawfunds()` - Function name: `withdrawfunds()`
- PC address: 816 - PC address: 722
### Description ### Description
@ -18,7 +18,7 @@ There is a check on storage index 1. This storage slot can be written to by call
- Type: Warning - Type: Warning
- Contract: Unknown - Contract: Unknown
- Function name: `invest()` - Function name: `invest()`
- PC address: 483 - PC address: 883
### Description ### Description

@ -2,7 +2,7 @@
Type: Warning Type: Warning
Contract: Unknown Contract: Unknown
Function name: withdrawfunds() Function name: withdrawfunds()
PC address: 816 PC address: 722
In the function `withdrawfunds()` a non-zero amount of Ether is sent to msg.sender. In the function `withdrawfunds()` a non-zero amount of Ether is sent to msg.sender.
There is a check on storage index 1. This storage slot can be written to by calling the function `crowdfunding()`. There is a check on storage index 1. This storage slot can be written to by calling the function `crowdfunding()`.
@ -12,7 +12,7 @@ There is a check on storage index 1. This storage slot can be written to by call
Type: Warning Type: Warning
Contract: Unknown Contract: Unknown
Function name: invest() Function name: invest()
PC address: 483 PC address: 883
A possible integer overflow exists in the function `invest()`. A possible integer overflow exists in the function `invest()`.
The addition or multiplication may result in a value higher than the maximum representable integer. The addition or multiplication may result in a value higher than the maximum representable integer.
-------------------- --------------------

Loading…
Cancel
Save