From 7ddf742929d2cb4631ca2530cb848c9db499e2e1 Mon Sep 17 00:00:00 2001 From: lnk Date: Wed, 2 Jul 2025 11:38:54 +0800 Subject: [PATCH] fix ldname error when ledger update --- cfg_parse/cfg_parser.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cfg_parse/cfg_parser.cpp b/cfg_parse/cfg_parser.cpp index a2a5ca2..a3152cd 100644 --- a/cfg_parse/cfg_parser.cpp +++ b/cfg_parse/cfg_parser.cpp @@ -1446,7 +1446,7 @@ int parse_rpt_log_ini() for (cpuno = 0; cpuno < ied->cpucount; cpuno++) { LD_info = &(ied_usr->LD_info[cpuno]); - char str[256]; //256大小 + //char str[256]; //256大小 char* tmp = Get_IED(ied_usr->dev_type); if(tmp == NULL){std::cerr << "front read ied config error!" << std::endl;continue;} qDebug() << tmp << endl; @@ -5641,11 +5641,11 @@ int parse_rpt_log_ini_one(ied_t* ied) LD_info = &(ied_usr->LD_info[cpuno]); //这些可能是已有的内存,经过判断才能从g_init_pool中分配内存,lnk20250122 - char str[256]; + //char str[256]; char* tmp = Get_IED(ied_usr->dev_type); if(tmp == NULL){std::cerr << "front read ied config error!" << std::endl;continue;} qDebug() << tmp << endl; - apr_snprintf(str, sizeof(str), tmp, cpuno + 1); + //apr_snprintf(str, sizeof(str), tmp, cpuno + 1); //调试 printf("%s使用内存地址 LD_name[%d]: %p\n", ied_usr->terminal_id, cpuno, (void*)ied_usr->LD_info[cpuno].LD_name); @@ -5656,7 +5656,11 @@ int parse_rpt_log_ini_one(ied_t* ied) continue;//跳过防止崩溃 } - printf("logini ied_usr->LD_info[cpuno - 1].LD_name: %s\n", ied_usr->LD_info[cpuno].LD_name); + printf("old logini ied_usr->LD_info[cpuno - 1].LD_name: %s\n", ied_usr->LD_info[cpuno].LD_name); + + apr_snprintf(ied_usr->LD_info[cpuno].LD_name, 256, tmp, cpuno + 1);//注意拷贝大小,容易段错误,lnk20250702 + + printf("new logini ied_usr->LD_info[cpuno - 1].LD_name: %s\n", ied_usr->LD_info[cpuno].LD_name); delete[] tmp;//Get_IED中分配了内存,使用后删除