From 0b4420bfd5f32fd715704f9adcf2320971f05ab3 Mon Sep 17 00:00:00 2001 From: Steven Johnstone Date: Thu, 20 Nov 2025 11:02:33 +0000 Subject: [ruby/prism] Use memmove for overlapping memory ranges Fixes https://github.com/ruby/prism/pull/3736. https://github.com/ruby/prism/commit/1f5f192ab7 --- prism/prism.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prism/prism.c b/prism/prism.c index a87932f1b7..45817cdd8c 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -13467,7 +13467,7 @@ parse_target_implicit_parameter(pm_parser_t *parser, pm_node_t *node) { // remaining nodes down to fill the gap. This is extremely unlikely // to happen. if (index != implicit_parameters->size - 1) { - memcpy(&implicit_parameters->nodes[index], &implicit_parameters->nodes[index + 1], (implicit_parameters->size - index - 1) * sizeof(pm_node_t *)); + memmove(&implicit_parameters->nodes[index], &implicit_parameters->nodes[index + 1], (implicit_parameters->size - index - 1) * sizeof(pm_node_t *)); } implicit_parameters->size--; -- cgit v1.2.3