Add bounds check for msg_stamp before timestamp processing (#2760)

* Add bounds check for msg_stamp before timestamp processing

* avoids the extra layer of nesting
This commit is contained in:
msly
2026-01-01 15:12:00 +08:00
committed by GitHub
parent 7b58bdccfe
commit c253fe7d7a
+6 -8
View File
@@ -297,12 +297,10 @@
//timestamp
if(msg_vec.size() > 1){
std::vector<std::string> msg_stamp = funasr::split(msg_vec[1], ',');
if (msg_stamp.size() > 1) {
for(int i=0; i<msg_stamp.size()-1; i+=2){
float begin = std::stof(msg_stamp[i])+msg_stimes[idx];
float end = std::stof(msg_stamp[i+1])+msg_stimes[idx];
cur_stamp += "["+std::to_string((int)(1000*begin))+","+std::to_string((int)(1000*end))+"],";
}
for(size_t i = 0; i + 1 < msg_stamp.size(); i += 2){
float begin = std::stof(msg_stamp[i])+msg_stimes[idx];
float end = std::stof(msg_stamp[i+1])+msg_stimes[idx];
cur_stamp += "["+std::to_string((int)(1000*begin))+","+std::to_string((int)(1000*end))+"],";
}
}
}
@@ -421,7 +419,7 @@
//timestamp
if(msg_vec.size() > 1){
std::vector<std::string> msg_stamp = funasr::split(msg_vec[1], ',');
for(int i=0; i<msg_stamp.size()-1; i+=2){
for(size_t i = 0; i + 1 < msg_stamp.size(); i += 2){
float begin = std::stof(msg_stamp[i])+msg_stimes[idx];
float end = std::stof(msg_stamp[i+1])+msg_stimes[idx];
cur_stamp += "["+std::to_string((int)(1000*begin))+","+std::to_string((int)(1000*end))+"],";
@@ -585,7 +583,7 @@
//timestamp
if(msg_vec.size() > 1){
std::vector<std::string> msg_stamp = funasr::split(msg_vec[1], ',');
for(int i=0; i<msg_stamp.size()-1; i+=2){
for(size_t i = 0; i + 1 < msg_stamp.size(); i += 2){
float begin = std::stof(msg_stamp[i]) + float(frame->global_start)/1000.0;
float end = std::stof(msg_stamp[i+1]) + float(frame->global_start)/1000.0;
cur_stamp += "["+std::to_string((int)(1000*begin))+","+std::to_string((int)(1000*end))+"],";