From 6998246233e42a05883a7bfc9364bb5918456107 Mon Sep 17 00:00:00 2001 From: Noah Gibbs Date: Wed, 30 Jun 2021 10:00:07 +0100 Subject: [PATCH] Use snprintf rather than double strncpy. --- yjit_iface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/yjit_iface.c b/yjit_iface.c index ed47112052..76eb4876c8 100644 --- a/yjit_iface.c +++ b/yjit_iface.c @@ -766,10 +766,9 @@ get_yjit_stats(rb_execution_context_t *ec, VALUE self) // where the value is the count of side exits for that instruction. char key_string[rb_vm_max_insn_name_size + 6]; // Leave room for "exit_" and a final NUL - strncpy(key_string, "exit_", 6); // Copy 6 characters to include the NUL. for (int i = 0; i < VM_INSTRUCTION_SIZE; i++) { const char *i_name = insn_name(i); // Look up Ruby's NUL-terminated insn name string - strncpy(key_string + 5, i_name, rb_vm_max_insn_name_size + 1); + snprintf(key_string, rb_vm_max_insn_name_size + 6, "%s%s", "exit_", i_name); VALUE key = ID2SYM(rb_intern(key_string)); VALUE value = LL2NUM((long long)exit_op_count[i]);