From 077d8ad5141a7eb85a0e3e636a963bbdf6f7ad25 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 2 May 2023 09:45:47 +0900 Subject: [PATCH] symbol.c (sym_intern): check NUL before calling strlen() To avoid accidental buffer overrun if a string without NUL termination is provided. --- src/symbol.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/symbol.c b/src/symbol.c index 2eee14127..680823255 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -207,7 +207,7 @@ sym_intern(mrb_state *mrb, const char *name, size_t len, mrb_bool lit) mrb->symcapa = symcapa; } sym_flags_clear(mrb, sym); - if ((lit || mrb_ro_data_p(name)) && strlen(name) == len) { + if ((lit || mrb_ro_data_p(name)) && name[len] == 0 && strlen(name) == len) { sym_lit_set(mrb, sym); mrb->symtbl[sym] = name; }