FrameSender: fix memory corruption while writing to the QCanBusFrame with empty payload
This commit is contained in:
@@ -1054,8 +1054,6 @@ void FrameSenderWindow::processCellChange(int line, int col)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ST_COLS::SENDTAB_COL_DATA: //Data bytes
|
case ST_COLS::SENDTAB_COL_DATA: //Data bytes
|
||||||
for (int i = 0; i < 8; i++) sendingData[line].payload().data()[i] = 0;
|
|
||||||
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK( 5, 14, 0 )
|
#if QT_VERSION >= QT_VERSION_CHECK( 5, 14, 0 )
|
||||||
tokens = ui->tableSender->item(line, ST_COLS::SENDTAB_COL_DATA)->text().split(" ", Qt::SkipEmptyParts);
|
tokens = ui->tableSender->item(line, ST_COLS::SENDTAB_COL_DATA)->text().split(" ", Qt::SkipEmptyParts);
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -851,7 +851,7 @@ void FlowViewWindow::updatePosition(bool forward)
|
|||||||
int maxVal = qMin(chunk * 8 + 8, frameCache.at(currentPosition).payload().length());
|
int maxVal = qMin(chunk * 8 + 8, frameCache.at(currentPosition).payload().length());
|
||||||
for (int i = chunk * 8; i < maxVal; i++)
|
for (int i = chunk * 8; i < maxVal; i++)
|
||||||
{
|
{
|
||||||
unsigned char thisByte = static_cast<unsigned char>(frameCache.at(currentPosition).payload().data()[i]);
|
unsigned char thisByte = static_cast<unsigned char>(frameCache.at(currentPosition).payload()[i]);
|
||||||
cngByte = currBytes[i] ^ thisByte;
|
cngByte = currBytes[i] ^ thisByte;
|
||||||
changedBits |= (uint64_t)cngByte << (8ull * (i & 7));
|
changedBits |= (uint64_t)cngByte << (8ull * (i & 7));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user