@@ -535,7 +535,8 @@ int main(int argc, char ** argv) {
535535 params.imatrix = &imatrix_data;
536536 {
537537 llama_model_kv_override kvo;
538- std::strcpy (kvo.key , LLM_KV_QUANTIZE_IMATRIX_FILE);
538+ strncpy (kvo.key , LLM_KV_QUANTIZE_IMATRIX_FILE, 127 );
539+ kvo.key [127 ] = ' \0 ' ;
539540 kvo.tag = LLAMA_KV_OVERRIDE_TYPE_STR;
540541 strncpy (kvo.val_str , imatrix_file.c_str (), 127 );
541542 kvo.val_str [127 ] = ' \0 ' ;
@@ -544,7 +545,8 @@ int main(int argc, char ** argv) {
544545 if (!imatrix_datasets.empty ()) {
545546 llama_model_kv_override kvo;
546547 // TODO: list multiple datasets when there are more than one
547- std::strcpy (kvo.key , LLM_KV_QUANTIZE_IMATRIX_DATASET);
548+ strncpy (kvo.key , LLM_KV_QUANTIZE_IMATRIX_DATASET, 127 );
549+ kvo.key [127 ] = ' \0 ' ;
548550 kvo.tag = LLAMA_KV_OVERRIDE_TYPE_STR;
549551 strncpy (kvo.val_str , imatrix_datasets[0 ].c_str (), 127 );
550552 kvo.val_str [127 ] = ' \0 ' ;
@@ -553,15 +555,17 @@ int main(int argc, char ** argv) {
553555
554556 {
555557 llama_model_kv_override kvo;
556- std::strcpy (kvo.key , LLM_KV_QUANTIZE_IMATRIX_N_ENTRIES);
558+ strncpy (kvo.key , LLM_KV_QUANTIZE_IMATRIX_N_ENTRIES, 127 );
559+ kvo.key [127 ] = ' \0 ' ;
557560 kvo.tag = LLAMA_KV_OVERRIDE_TYPE_INT;
558561 kvo.val_i64 = imatrix_data.size ();
559562 kv_overrides.emplace_back (std::move (kvo));
560563 }
561564
562565 if (m_last_call > 0 ) {
563566 llama_model_kv_override kvo;
564- std::strcpy (kvo.key , LLM_KV_QUANTIZE_IMATRIX_N_CHUNKS);
567+ strncpy (kvo.key , LLM_KV_QUANTIZE_IMATRIX_N_CHUNKS, 127 );
568+ kvo.key [127 ] = ' \0 ' ;
565569 kvo.tag = LLAMA_KV_OVERRIDE_TYPE_INT;
566570 kvo.val_i64 = m_last_call;
567571 kv_overrides.emplace_back (std::move (kvo));
0 commit comments