Jeff Epler
9f434dd8de
py/gc: Ensure a gap of one byte after the ATB.
...
Prior to this fix the follow crash occurred. With a GC layout of:
GC layout:
alloc table at 0x3fd80428, length 32001 bytes, 128004 blocks
finaliser table at 0x3fd88129, length 16001 bytes, 128008 blocks
pool at 0x3fd8bfc0, length 2048064 bytes, 128004 blocks
Block 128003 is an AT_HEAD and eventually is passed to gc_mark_subtree.
This causes gc_mark_subtree to call ATB_GET_KIND(128004). When block 1 is
created with a finaliser, the first byte of the finaliser table becomes
0x2, but ATB_GET_KIND(128004) reads these bits as AT_TAIL, and then
gc_mark_subtree references past the end of the heap, which happened to be
past the end of PSRAM on the esp32-s2.
The fix in this commit is to ensure there is a one-byte gap after the ATB
filled permanently with AT_FREE.
Fixes issue #7116 .
See also https://github.com/adafruit/circuitpython/issues/5021
Signed-off-by: Jeff Epler <jepler@gmail.com>
Signed-off-by: Damien George <damien@micropython.org>
2022-12-08 14:29:58 +11:00
..
2022-12-06 13:34:52 +11:00
2022-05-23 14:21:16 +10:00
2022-05-23 14:21:16 +10:00
2022-06-20 22:28:18 +10:00
2022-06-20 22:28:18 +10:00
2022-05-24 22:27:18 +10:00
2022-05-23 23:01:12 +10:00
2022-05-17 14:25:51 +10:00
2022-05-23 14:21:16 +10:00
2020-06-27 00:24:04 +10:00
2022-05-23 14:21:16 +10:00
2022-03-30 16:32:17 +11:00
2022-05-23 14:21:16 +10:00
2022-03-28 15:43:09 +11:00
2022-11-28 11:23:22 +11:00
2022-12-08 12:27:23 +11:00
2022-08-23 13:09:57 +10:00
2019-09-02 13:14:27 +10:00
2022-08-23 13:34:06 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:07 +10:00
2022-12-08 12:27:23 +11:00
2022-12-08 12:27:23 +11:00
2022-12-08 12:27:23 +11:00
2022-09-19 19:06:15 +10:00
2022-08-11 14:00:13 +10:00
2022-06-20 22:28:18 +10:00
2022-06-20 22:28:18 +10:00
2022-05-18 15:23:11 +10:00
2022-05-23 15:43:06 +10:00
2022-05-23 15:43:06 +10:00
2022-05-26 12:22:07 +10:00
2020-10-22 11:47:36 +02:00
2022-05-23 15:43:06 +10:00
2022-11-11 12:25:32 +11:00
2022-05-23 15:43:06 +10:00
2022-05-23 15:43:06 +10:00
2022-05-23 15:43:06 +10:00
2022-05-23 15:43:06 +10:00
2022-05-23 15:43:06 +10:00
2022-08-12 23:53:34 +10:00
2017-07-31 18:35:40 +10:00
2022-02-24 18:08:43 +11:00
2022-05-25 13:04:45 +10:00
2022-12-08 14:29:58 +11:00
2022-07-23 00:42:54 +10:00
2020-06-16 23:18:01 +10:00
2022-05-17 12:51:54 +10:00
2022-05-25 13:04:45 +10:00
2022-07-18 13:48:23 +10:00
2020-04-20 10:32:49 +10:00
2022-06-14 15:05:37 +01:00
2022-02-11 22:52:32 +11:00
2022-07-18 13:48:23 +10:00
2022-11-22 14:36:21 +11:00
2022-05-05 10:31:50 +10:00
2022-07-18 11:17:46 +10:00
2022-10-12 00:33:09 +11:00
2022-09-29 14:17:37 +02:00
2022-09-26 12:38:58 +10:00
2022-09-15 12:22:18 +10:00
2022-06-02 16:31:37 +10:00
2022-09-19 19:06:15 +10:00
2022-06-02 16:31:37 +10:00
2022-06-02 16:31:37 +10:00
2022-06-02 16:31:37 +10:00
2022-09-19 19:06:15 +10:00
2022-06-02 16:31:37 +10:00
2022-12-06 13:34:17 +11:00
2022-08-26 16:43:55 +10:00
2022-10-11 18:10:26 +11:00
2022-09-19 19:06:15 +10:00
2022-06-02 16:31:37 +10:00
2022-12-08 14:29:22 +11:00
2021-06-24 23:14:01 +10:00
2020-09-18 17:20:34 +10:00
2020-12-07 23:32:06 +11:00
2022-08-10 14:30:47 +10:00
2017-07-31 18:35:40 +10:00
2022-07-23 00:43:08 +10:00
2020-02-28 10:33:03 +11:00
2021-12-21 18:00:05 +11:00
2021-12-21 18:00:05 +11:00
2022-05-17 14:25:51 +10:00
2022-05-17 14:25:51 +10:00
2020-02-28 10:33:03 +11:00
2022-11-15 17:09:49 +11:00
2021-05-18 11:46:30 +10:00
2022-11-15 17:09:49 +11:00
2022-08-11 14:04:13 +10:00
2017-12-28 16:46:30 +11:00
2020-02-28 10:33:03 +11:00
2021-05-18 11:52:00 +10:00
2020-02-28 10:33:03 +11:00
2020-02-28 10:33:03 +11:00
2022-09-19 19:06:13 +10:00
2022-10-26 00:08:41 +11:00
2022-11-08 23:09:22 +11:00
2022-08-11 23:18:02 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-11-25 12:46:14 +11:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:16 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-02-24 18:08:43 +11:00
2022-09-19 19:06:15 +10:00
2017-07-31 18:35:40 +10:00
2022-09-19 19:06:15 +10:00
2022-07-18 11:17:46 +10:00
2022-07-18 11:17:46 +10:00
2022-09-19 19:06:15 +10:00
2020-05-28 10:02:14 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 23:22:46 +10:00
2022-03-10 10:35:44 +11:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-12-06 13:34:52 +11:00
2022-10-11 17:50:19 +11:00
2022-09-19 19:06:15 +10:00
2017-06-09 17:33:01 +03:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2020-02-28 10:33:03 +11:00
2022-09-19 19:06:16 +10:00
2022-09-19 19:06:16 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:07 +10:00
2020-03-26 01:21:04 +11:00
2020-03-26 01:21:04 +11:00
2022-09-23 16:04:13 +10:00
2022-04-14 22:44:56 +10:00
2022-08-26 16:44:35 +10:00
2022-06-23 11:46:47 +10:00
2020-02-28 10:33:03 +11:00
2017-07-31 18:35:40 +10:00
2022-12-08 12:27:23 +11:00
2022-12-08 12:27:23 +11:00
2022-09-19 19:06:15 +10:00
2022-02-24 18:08:43 +11:00
2022-11-15 17:09:49 +11:00
2022-11-15 17:09:49 +11:00
2021-07-15 00:12:41 +10:00
2020-02-28 10:33:03 +11:00
2022-08-11 23:18:02 +10:00
2022-08-11 23:18:02 +10:00
2022-03-10 10:58:33 +11:00
2022-09-19 23:27:08 +10:00
2017-03-14 11:52:05 +11:00
2022-04-22 17:00:16 +10:00
2022-03-10 10:58:33 +11:00
2019-11-21 12:04:53 +11:00
2020-06-05 14:04:20 +10:00
2022-07-25 14:23:34 +10:00
2017-12-05 00:38:41 +02:00
2022-09-19 23:25:26 +10:00
2022-09-19 23:25:26 +10:00
2022-07-18 13:52:01 +10:00
2022-02-24 18:08:43 +11:00
2022-05-03 16:38:43 +10:00
2020-04-05 15:02:06 +10:00
2022-03-28 15:43:09 +11:00
2017-07-31 18:35:40 +10:00
2022-03-25 12:23:43 +11:00
2020-02-28 10:33:03 +11:00
2021-06-05 11:03:09 +10:00
2022-09-19 19:06:07 +10:00
2022-09-19 19:06:07 +10:00
2020-02-28 10:33:03 +11:00
2017-09-06 16:43:09 +10:00
2021-03-31 00:26:01 +11:00
2022-07-12 22:48:55 +10:00
2020-10-22 11:47:36 +02:00
2020-02-28 10:33:03 +11:00
2019-02-06 00:19:00 +11:00