From 7ddc5e6187fdf531fe5e92f01bb4624c06bddda2 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 4 Jun 2025 13:49:16 +0900 Subject: [PATCH] Suppress overflow warning at `ALLOC_N` in `iseq_set_local_table` `xmalloc2` checks the overflow of arguments multiplication. --- compile.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/compile.c b/compile.c index 3ab4aa81c6..cbde124516 100644 --- a/compile.c +++ b/compile.c @@ -2184,7 +2184,10 @@ iseq_set_local_table(rb_iseq_t *iseq, const rb_ast_id_table_t *tbl, const NODE * } if (size > 0) { - ID *ids = (ID *)ALLOC_N(ID, size); +#if SIZEOF_INT >= SIZEOF_SIZE_T + ASSUME(size < SIZE_MAX / sizeof(ID)); /* checked in xmalloc2_size */ +#endif + ID *ids = ALLOC_N(ID, size); MEMCPY(ids, tbl->ids + offset, ID, size); ISEQ_BODY(iseq)->local_table = ids; }