Luca Boccassi and Paul Meyer
d30e87ea49
uid-range: fix out-of-bounds write in uid_range_partition()
...
uid_range_partition() filled the grown entries[] buffer backwards in
place. The backward-fill invariant (the write cursor stays above the
read index) only holds when every source entry contributes at least
one partition; an entry with nr < size contributes zero, so the cursor
stalls while the read index keeps descending. A later multi-part
entry's writes then overwrite the still-live zero-part slot, the
corrupted slot is re-read as a one-part entry, and the next
range->entries[--t] underflows.
Add a forward compaction first pass that drops the zero-part entries
before the backward fill.
Follow-up for 025439faaa
Co-Authored-by: Paul Meyer <katexochen0@gmail.com >
2026-06-25 10:28:54 +01:00
..
2026-06-11 09:43:09 +02:00
2026-06-13 09:39:28 +01:00
2026-05-18 02:55:56 +09:00
2026-06-25 10:28:54 +01:00
2026-04-30 11:12:33 +01:00
2026-05-16 18:37:10 +02:00
2026-06-23 12:37:54 +02:00
2026-06-22 11:40:57 +02:00
2026-05-19 08:54:27 +02:00
2026-05-16 18:37:10 +02:00
2026-05-28 20:55:01 +01:00
2026-06-23 22:55:23 +02:00
2026-05-21 18:02:05 +02:00
2026-06-01 18:46:24 +01:00
2026-06-01 18:46:24 +01:00
2026-06-19 15:23:21 +09:00
2026-06-22 14:40:16 +02:00
2026-06-16 00:16:05 +01:00
2026-05-16 18:37:10 +02:00
2026-06-20 14:26:41 +02:00
2026-06-16 11:44:08 +01:00
2026-06-23 12:43:00 +02:00
2026-05-29 04:30:48 +09:00
2026-06-16 10:26:23 +02:00
2026-06-23 17:28:44 +01:00
2026-06-22 22:06:05 +02:00
2026-06-20 14:26:41 +02:00
2026-05-16 18:37:10 +02:00
2026-05-16 18:37:10 +02:00
2026-06-22 22:03:12 +02:00
2026-06-22 21:59:15 +02:00
2026-06-15 14:15:46 +02:00
2026-06-20 23:38:26 +02:00
2026-06-23 12:41:38 +02:00
2026-06-01 18:46:24 +01:00
2026-06-22 14:40:16 +02:00
2026-06-22 11:40:57 +02:00
2026-05-24 15:00:37 +02:00
2026-06-23 23:10:02 +02:00
2026-06-08 20:29:59 +01:00
2026-05-21 10:33:03 +09:00
2026-06-06 13:44:07 +01:00
2026-06-20 09:57:42 +01:00
2026-06-13 15:54:50 +02:00
2026-06-01 18:46:24 +01:00
2026-05-14 08:12:28 +02:00
2026-05-21 18:02:05 +02:00
2026-05-05 17:23:16 +02:00
2026-06-20 10:37:47 +02:00
2026-05-21 18:02:05 +02:00
2026-06-02 18:05:34 +02:00
2026-06-22 14:40:16 +02:00
2026-05-21 10:33:03 +09:00
2026-06-20 15:14:14 +02:00
2026-06-10 21:56:01 +02:00
2026-06-23 07:38:32 +02:00
2026-06-01 18:46:24 +01:00
2026-06-22 21:19:16 +01:00
2026-05-18 21:17:38 +00:00
2026-06-15 14:16:28 +02:00
2026-06-22 22:05:37 +02:00
2026-06-22 20:42:35 +02:00
2026-06-22 14:15:39 +01:00
2026-05-18 02:55:56 +09:00
2026-06-20 09:55:02 +01:00
2026-06-22 11:40:57 +02:00
2026-06-23 22:55:23 +02:00
2026-06-03 16:10:20 +02:00
2026-05-18 02:55:56 +09:00
2026-05-18 21:17:38 +00:00
2026-05-20 04:29:59 +09:00
2026-06-13 15:54:50 +02:00
2026-06-22 14:40:16 +02:00
2026-06-16 11:44:08 +01:00
2026-06-19 22:15:43 +02:00
2026-05-21 09:09:38 +09:00
2026-06-23 22:55:23 +02:00
2026-06-22 10:54:49 +01:00
2026-06-24 10:42:16 +02:00
2026-06-17 08:32:51 +02:00
2026-06-25 10:28:54 +01:00
2026-05-16 18:37:10 +02:00
2026-05-18 21:17:38 +00:00
2026-06-21 18:20:53 +01:00
2026-06-23 18:37:42 +02:00
2026-05-21 10:33:03 +09:00
2026-06-23 23:10:02 +02:00
2026-06-04 17:13:03 +02:00
2026-05-16 18:37:10 +02:00
2026-06-15 16:54:35 +03:00
2026-06-01 18:46:24 +01:00
2026-06-23 23:10:01 +02:00
2026-05-20 16:34:21 +02:00
2026-06-22 17:29:50 +02:00
2026-06-23 23:10:02 +02:00
2025-12-15 08:50:13 +09:00