Use snprintf rather than double strncpy.

This commit is contained in:
Noah Gibbs 2021-06-30 10:00:07 +01:00 коммит произвёл Alan Wu
Родитель e2fe7e4aff
Коммит 6998246233
1 изменённых файлов: 1 добавлений и 2 удалений

Просмотреть файл

@ -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]);