Skip to content

Commit 8a39eef

Browse files
committed
Cleanup sample labeling errors
* Ensure strings are null initialized and terminated * Remove data bit accounting for waveform view * Fix corruption of dummy label on waveform view
1 parent e016e5f commit 8a39eef

File tree

1 file changed

+12
-19
lines changed

1 file changed

+12
-19
lines changed

src/QSpiAnalyzerResults.cpp

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,15 @@ void QSpiAnalyzerResults::GenerateBubbleText(U64 frame_index, Channel &channel,
3232
U32 bit_count = GetStateBitCount(mSettings, transaction_state);
3333
U32 clock_count = GetStateClockCount(mSettings, transaction_state, data_lines);
3434

35-
char number_str[128];
36-
char result_str[128];
35+
char number_str[128] = { 0 };
36+
char result_str[128] = { 0 };
3737

3838
if (frame.mType == QSpiTypes::DUMMY_STATE)
3939
{
4040
AddResultString("X");
4141
AddResultString("Dummy");
4242
data_index = 0;
43+
return;
4344
}
4445
else
4546
{
@@ -65,7 +66,6 @@ void QSpiAnalyzerResults::GenerateBubbleText(U64 frame_index, Channel &channel,
6566
AddResultString(number_str);
6667
snprintf(result_str, sizeof(result_str), "Data: %s", number_str);
6768
AddResultString(result_str);
68-
snprintf(result_str, sizeof(result_str), "Data %d: %s", data_index++, number_str);
6969
break;
7070
}
7171

@@ -101,21 +101,21 @@ void QSpiAnalyzerResults::GenerateExportFile(const char *file, DisplayBase displ
101101
continue;
102102
}
103103

104-
char time_str[128];
105-
AnalyzerHelpers::GetTimeString(frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128);
104+
char time_str[128] = { 0 };
105+
AnalyzerHelpers::GetTimeString(frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, sizeof(time_str));
106106

107-
char data_str[128] = "";
107+
char data_str[128] = { 0 };
108108

109109
QSpiTypes::TransactionState transaction_state = (QSpiTypes::TransactionState)frame.mType;
110110
QSpiTypes::IOMode data_lines = GetIOMode(mSettings, transaction_state);
111111
U32 bit_count = GetStateBitCount(mSettings, transaction_state);
112112
U32 clock_count = GetStateClockCount(mSettings, transaction_state, data_lines);
113113

114114
if (frame.mType == QSpiTypes::DUMMY_STATE){
115-
strcpy(data_str, "Dummy");
115+
strncpy(data_str, "Dummy", sizeof(data_str));
116116
}
117117
else{
118-
AnalyzerHelpers::GetNumberString(frame.mData1, display_base, bit_count, data_str, 128);
118+
AnalyzerHelpers::GetNumberString(frame.mData1, display_base, bit_count, data_str, sizeof(data_str));
119119
}
120120

121121
U64 packet_id = GetPacketContainingFrameSequential(i);
@@ -144,7 +144,7 @@ void QSpiAnalyzerResults::GenerateFrameTabularText(U64 frame_index, DisplayBase
144144
Frame frame = GetFrame(frame_index);
145145

146146

147-
char data_str[128];
147+
char data_str[128] = { 0 };
148148
QSpiTypes::TransactionState transaction_state = (QSpiTypes::TransactionState)frame.mType;
149149
QSpiTypes::IOMode data_lines = GetIOMode(mSettings, transaction_state);
150150
U32 bit_count = GetStateBitCount(mSettings, transaction_state);
@@ -157,16 +157,11 @@ void QSpiAnalyzerResults::GenerateFrameTabularText(U64 frame_index, DisplayBase
157157
if (frame.mType != QSpiTypes::DATA_STATE && data_index > 0)
158158
{
159159
data_index = 0;
160-
/*ss << " ";
161-
AddTabularText(ss.str().c_str());
162-
ss.clear();*/
163160
}
164161

165162
if (frame.mType == QSpiTypes::DUMMY_STATE)
166163
{
167-
/*ss << "Dummy: ";
168-
strcpy(data_str, "(Dummy)");*/
169-
sprintf(data_str, "(Dummy) %d bits", bit_count);
164+
snprintf(data_str, sizeof(data_str), "(Dummy) %d bits", bit_count);
170165
}
171166
else
172167
{
@@ -179,13 +174,11 @@ void QSpiAnalyzerResults::GenerateFrameTabularText(U64 frame_index, DisplayBase
179174
ss << "Addr: ";
180175
break;
181176
case QSpiTypes::DATA_STATE:
182-
sprintf(data_str, "Data %d: ", data_index++);
183-
//ss << "Data: ";
184-
ss << data_str;
177+
snprintf(data_str, sizeof(data_str), "Data %d: ", data_index++);
185178
break;
186179
}
187180

188-
AnalyzerHelpers::GetNumberString(frame.mData1, display_base, bit_count, data_str, 128);
181+
AnalyzerHelpers::GetNumberString(frame.mData1, display_base, bit_count, data_str, sizeof(data_str));
189182
}
190183

191184
ss << data_str;

0 commit comments

Comments
 (0)