Yukihiro "Matz" Matsumoto
af6f23ddb3
mruby-string-ext: fix String#prepend with self-referencing arguments
...
String#prepend(s, s) read RSTRING_LEN(argv[i]) in the copy loop after
mrb_str_resize had already updated the receiver's length, causing the
memcpy to write past the allocated buffer.
Detect self-references with mrb_obj_eq() and read from the memmoved
original data at p + total_prepend_len using the captured self_len.
This also handles mixed cases like s.prepend("X", s) where earlier
writes would otherwise corrupt the source of later reads.
Co-authored-by: Claude <noreply@anthropic.com >
2026-04-10 14:44:46 +09:00
..
2025-10-16 09:59:03 +09:00
2026-01-25 15:46:56 +01:00
2026-03-09 16:50:58 +09:00
2026-01-14 14:56:50 +09:00
2025-10-16 16:54:25 +09:00
2026-01-25 16:04:23 +01:00
2026-03-09 16:50:58 +09:00
2025-10-16 17:02:23 +09:00
2026-03-22 23:05:37 +09:00
2025-12-11 18:09:09 +09:00
2026-02-16 16:34:21 +09:00
2025-12-11 18:09:10 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2025-12-11 18:09:10 +09:00
2026-03-09 16:50:58 +09:00
2025-12-11 18:09:10 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2025-08-14 10:52:49 +09:00
2026-03-30 07:06:30 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2025-12-11 18:09:06 +09:00
2025-12-11 18:09:09 +09:00
2026-03-28 23:14:46 +01:00
2025-12-11 18:09:07 +09:00
2026-03-09 16:50:58 +09:00
2025-11-08 14:26:49 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-24 22:16:15 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2025-06-24 13:56:07 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-30 22:14:26 +02:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-04-10 14:44:46 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-25 15:32:36 +09:00
2024-09-24 00:14:24 +10:00
2026-03-09 16:50:58 +09:00
2025-08-14 10:52:47 +09:00
2021-01-06 18:10:21 +09:00
2021-01-06 18:10:21 +09:00
2023-04-04 19:31:42 +10:00
2025-10-08 23:55:21 +09:00
2025-05-14 15:58:23 +09:00
2025-05-14 15:58:24 +09:00
2022-11-29 15:58:05 +09:00
2025-01-06 13:57:23 +09:00
2025-05-19 08:00:36 +09:00