Commit 0b4fd84
committed
Fix crash related to make_fun3 OTP24 opcode
As reported by @muromec and with provided test case, fix a bug where
a heap overflow would occur because allocation lists were poorly
decoded.
Also remove unnecessary calls to `memory_ensure_free` for make_fun3
and update_record opcodes that are marked as generating allocations in
beam_ssa_codegen.
Signed-off-by: Paul Guyot <[email protected]>1 parent 42de0ad commit 0b4fd84
File tree
5 files changed
+68
-16
lines changed- src/libAtomVM
- tests
- erlang_tests
5 files changed
+68
-16
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
391 | 391 | | |
392 | 392 | | |
393 | 393 | | |
| 394 | + | |
| 395 | + | |
394 | 396 | | |
395 | 397 | | |
396 | 398 | | |
| |||
654 | 656 | | |
655 | 657 | | |
656 | 658 | | |
| 659 | + | |
| 660 | + | |
657 | 661 | | |
658 | 662 | | |
659 | 663 | | |
| |||
1132 | 1136 | | |
1133 | 1137 | | |
1134 | 1138 | | |
1135 | | - | |
1136 | | - | |
| 1139 | + | |
| 1140 | + | |
1137 | 1141 | | |
1138 | 1142 | | |
1139 | | - | |
| 1143 | + | |
1140 | 1144 | | |
1141 | | - | |
| 1145 | + | |
1142 | 1146 | | |
1143 | 1147 | | |
1144 | 1148 | | |
| |||
6117 | 6121 | | |
6118 | 6122 | | |
6119 | 6123 | | |
6120 | | - | |
6121 | | - | |
6122 | | - | |
| 6124 | + | |
| 6125 | + | |
| 6126 | + | |
6123 | 6127 | | |
6124 | 6128 | | |
6125 | | - | |
6126 | | - | |
6127 | | - | |
6128 | | - | |
| 6129 | + | |
| 6130 | + | |
6129 | 6131 | | |
6130 | | - | |
| 6132 | + | |
6131 | 6133 | | |
6132 | 6134 | | |
6133 | 6135 | | |
6134 | 6136 | | |
6135 | | - | |
| 6137 | + | |
6136 | 6138 | | |
6137 | 6139 | | |
6138 | 6140 | | |
| |||
6543 | 6545 | | |
6544 | 6546 | | |
6545 | 6547 | | |
6546 | | - | |
6547 | | - | |
6548 | | - | |
6549 | 6548 | | |
6550 | 6549 | | |
6551 | 6550 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
| 80 | + | |
80 | 81 | | |
81 | 82 | | |
82 | 83 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
169 | 169 | | |
170 | 170 | | |
171 | 171 | | |
| 172 | + | |
| 173 | + | |
172 | 174 | | |
173 | 175 | | |
174 | 176 | | |
| |||
583 | 585 | | |
584 | 586 | | |
585 | 587 | | |
| 588 | + | |
| 589 | + | |
586 | 590 | | |
587 | 591 | | |
588 | 592 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 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 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
189 | 189 | | |
190 | 190 | | |
191 | 191 | | |
| 192 | + | |
192 | 193 | | |
193 | 194 | | |
194 | 195 | | |
| |||
0 commit comments