Commit a437574
committed
fix(api): validate block number range in parseBlockNumber
parseBlockNumber previously returned BigInteger, letting callers narrow
with .longValue() and silently wrap past Long.MAX_VALUE. Return long
directly and enforce two invariants at the API boundary so corrupted
inputs never reach downstream block lookups:
- signum check rejects negative inputs (both "-1" and "0x-1"),
a protocol-level constraint block numbers can never violate
- longValueExact rejects values that overflow signed 64-bit,
including uint64 wraparounds like 0xffffffffffffffff
Callers in Wallet and TronJsonRpcImpl drop the obsolete .longValue()
call; the other three call sites already discarded the return value.
Regression tests cover negatives, 0x7fffffffffffffff (max long),
0x8000000000000000 (just past), and 0xffffffffffffffff (uint64).1 parent db91a72 commit a437574
4 files changed
Lines changed: 45 additions & 15 deletions
File tree
- framework/src
- main/java/org/tron/core
- services/jsonrpc
- test/java/org/tron/core/services/jsonrpc
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
743 | 743 | | |
744 | 744 | | |
745 | 745 | | |
746 | | - | |
| 746 | + | |
747 | 747 | | |
748 | 748 | | |
749 | 749 | | |
| |||
Lines changed: 15 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
527 | 527 | | |
528 | 528 | | |
529 | 529 | | |
530 | | - | |
531 | | - | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
532 | 534 | | |
533 | | - | |
| 535 | + | |
534 | 536 | | |
535 | 537 | | |
536 | 538 | | |
537 | 539 | | |
| 540 | + | |
538 | 541 | | |
539 | | - | |
| 542 | + | |
540 | 543 | | |
541 | 544 | | |
542 | 545 | | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
543 | 554 | | |
544 | 555 | | |
545 | 556 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
957 | 957 | | |
958 | 958 | | |
959 | 959 | | |
960 | | - | |
| 960 | + | |
961 | 961 | | |
962 | 962 | | |
963 | 963 | | |
| |||
Lines changed: 28 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | 6 | | |
8 | 7 | | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
13 | 12 | | |
14 | | - | |
15 | | - | |
| 13 | + | |
| 14 | + | |
16 | 15 | | |
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
20 | | - | |
| 19 | + | |
21 | 20 | | |
22 | 21 | | |
23 | 22 | | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
29 | 48 | | |
30 | 49 | | |
31 | 50 | | |
| |||
0 commit comments