Using sprintf Instead of snprintf

This commit is contained in:
2025-12-09 21:09:25 +01:00
parent ba2f036d88
commit 7c92386082
3 changed files with 33 additions and 31 deletions

View File

@ -47,6 +47,7 @@ public:
bool bWasDeleted = false; bool bWasDeleted = false;
bool bIsOffline = false; bool bIsOffline = false;
uint32_t u32DriveChecksumAfterShredding = 0U; uint32_t u32DriveChecksumAfterShredding = 0U;
uint16_t u16DriveIndex = 0U; // Index of TUI list
private: private:
string sPath; string sPath;

View File

@ -42,17 +42,17 @@ void Printer::print(Drive *drive)
t_msgQueueData msgQueueData; t_msgQueueData msgQueueData;
msgQueueData.msg_queue_type = 1; msgQueueData.msg_queue_type = 1;
sprintf(msgQueueData.driveData.caDriveIndex, "%i", 42); // TODO: get from tui snprintf(msgQueueData.driveData.caDriveIndex, STR_BUFFER_SIZE, "%i", drive->u16DriveIndex);
sprintf(msgQueueData.driveData.caDriveState, "shredded"); snprintf(msgQueueData.driveData.caDriveState, STR_BUFFER_SIZE, "shredded");
strcpy(msgQueueData.driveData.caDriveModelFamily, drive->getModelFamily().c_str()); strcpy(msgQueueData.driveData.caDriveModelFamily, drive->getModelFamily().c_str());
strcpy(msgQueueData.driveData.caDriveModelName, drive->getModelName().c_str()); strcpy(msgQueueData.driveData.caDriveModelName, drive->getModelName().c_str());
sprintf(msgQueueData.driveData.caDriveCapacity, "%li", drive->getCapacity()); snprintf(msgQueueData.driveData.caDriveCapacity, STR_BUFFER_SIZE, "%li", drive->getCapacity());
strcpy(msgQueueData.driveData.caDriveSerialnumber, drive->getSerial().c_str()); strcpy(msgQueueData.driveData.caDriveSerialnumber, drive->getSerial().c_str());
sprintf(msgQueueData.driveData.caDriveHours, "%i", drive->getPowerOnHours()); snprintf(msgQueueData.driveData.caDriveHours, STR_BUFFER_SIZE, "%i", drive->getPowerOnHours());
sprintf(msgQueueData.driveData.caDriveCycles, "%i", drive->getPowerCycles()); snprintf(msgQueueData.driveData.caDriveCycles, STR_BUFFER_SIZE, "%i", drive->getPowerCycles());
sprintf(msgQueueData.driveData.caDriveErrors, "%i", drive->getErrorCount()); snprintf(msgQueueData.driveData.caDriveErrors, STR_BUFFER_SIZE, "%i", drive->getErrorCount());
sprintf(msgQueueData.driveData.caDriveShredTimestamp, "%li", drive->getActionStartTimestamp()); snprintf(msgQueueData.driveData.caDriveShredTimestamp, STR_BUFFER_SIZE, "%li", drive->getActionStartTimestamp());
sprintf(msgQueueData.driveData.caDriveShredDuration, "%li", drive->getTaskDuration()); snprintf(msgQueueData.driveData.caDriveShredDuration, STR_BUFFER_SIZE, "%li", drive->getTaskDuration());
switch (drive->connectionType) switch (drive->connectionType)
{ {
@ -70,7 +70,7 @@ void Printer::print(Drive *drive)
strcpy(msgQueueData.driveData.caDriveConnectionType, "na"); strcpy(msgQueueData.driveData.caDriveConnectionType, "na");
} }
sprintf(msgQueueData.driveData.caDriveReHddVersion, REHDD_VERSION); snprintf(msgQueueData.driveData.caDriveReHddVersion, STR_BUFFER_SIZE, "%s", REHDD_VERSION);
if (-1 == msgsnd(this->msqid, &msgQueueData, sizeof(t_msgQueueData) - sizeof(long), 0)) if (-1 == msgsnd(this->msqid, &msgQueueData, sizeof(t_msgQueueData) - sizeof(long), 0))
{ {

View File

@ -19,7 +19,7 @@ static list<Drive> listDrives; // stores all drive data from scan thread
TUI *ui; TUI *ui;
static uint8_t u8SelectedEntry; static uint16_t u16SelectedEntry;
static fd_set selectSet; static fd_set selectSet;
@ -30,7 +30,7 @@ static fd_set selectSet;
*/ */
reHDD::reHDD(void) reHDD::reHDD(void)
{ {
u8SelectedEntry = 0U; u16SelectedEntry = 0U;
} }
/** /**
@ -83,7 +83,7 @@ void reHDD::app_logic(void)
Logger::logThis()->info("got progress signal from a shred task"); Logger::logThis()->info("got progress signal from a shred task");
#endif #endif
} }
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
} // endless loop } // endless loop
thDevices.join(); thDevices.join();
thUserInput.join(); thUserInput.join();
@ -92,10 +92,11 @@ void reHDD::app_logic(void)
Drive *reHDD::getSelectedDrive() Drive *reHDD::getSelectedDrive()
{ {
if (u8SelectedEntry < listDrives.size()) if (u16SelectedEntry < listDrives.size())
{ {
list<Drive>::iterator it = listDrives.begin(); list<Drive>::iterator it = listDrives.begin();
advance(it, u8SelectedEntry); advance(it, u16SelectedEntry);
it->u16DriveIndex = u16SelectedEntry;
return &(*it); return &(*it);
} }
else else
@ -150,12 +151,12 @@ void reHDD::ThreadUserInput()
case TUI::UserInput::DownKey: case TUI::UserInput::DownKey:
// cout << "Down" << endl; // cout << "Down" << endl;
handleArrowKey(TUI::UserInput::DownKey); handleArrowKey(TUI::UserInput::DownKey);
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
break; break;
case TUI::UserInput::UpKey: case TUI::UserInput::UpKey:
// cout << "Up" << endl; // cout << "Up" << endl;
handleArrowKey(TUI::UserInput::UpKey); handleArrowKey(TUI::UserInput::UpKey);
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
break; break;
case TUI::UserInput::Undefined: case TUI::UserInput::Undefined:
// cout << "Undefined" << endl; // cout << "Undefined" << endl;
@ -163,7 +164,7 @@ void reHDD::ThreadUserInput()
case TUI::UserInput::Abort: case TUI::UserInput::Abort:
// cout << "Abort" << endl; // cout << "Abort" << endl;
handleAbort(); handleAbort();
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
break; break;
case TUI::UserInput::Delete: case TUI::UserInput::Delete:
// cout << "Delete" << endl; // cout << "Delete" << endl;
@ -176,7 +177,7 @@ void reHDD::ThreadUserInput()
} }
} }
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
break; break;
case TUI::UserInput::Shred: case TUI::UserInput::Shred:
// cout << "Shred" << endl; // cout << "Shred" << endl;
@ -187,22 +188,22 @@ void reHDD::ThreadUserInput()
tmpSelectedDrive->state = Drive::SHRED_SELECTED; tmpSelectedDrive->state = Drive::SHRED_SELECTED;
} }
} }
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
break; break;
case TUI::UserInput::ShredAll: case TUI::UserInput::ShredAll:
// cout << "ShredAll" << endl; // cout << "ShredAll" << endl;
startShredAllDrives(&listDrives); startShredAllDrives(&listDrives);
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
break; break;
case TUI::UserInput::Enter: case TUI::UserInput::Enter:
// cout << "Enter" << endl; // cout << "Enter" << endl;
handleEnter(); handleEnter();
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
break; break;
case TUI::UserInput::ESC: case TUI::UserInput::ESC:
// cout << "ESC" << endl; // cout << "ESC" << endl;
handleESC(); handleESC();
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
break; break;
case TUI::UserInput::Terminate: case TUI::UserInput::Terminate:
// cout << "Terminate" << endl; // cout << "Terminate" << endl;
@ -225,7 +226,7 @@ void reHDD::ThreadShred(Drive *const pDrive)
Shred *pShredTask = new Shred(); // create new shred task Shred *pShredTask = new Shred(); // create new shred task
pShredTask->shredDrive(pDrive, &fdShredInformPipe[1]); // start new shred task pShredTask->shredDrive(pDrive, &fdShredInformPipe[1]); // start new shred task
delete pShredTask; // delete shred task delete pShredTask; // delete shred task
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
} }
} }
@ -239,7 +240,7 @@ void reHDD::ThreadDelete()
tmpSelectedDrive->state = Drive::TaskState::NONE; // delete finished tmpSelectedDrive->state = Drive::TaskState::NONE; // delete finished
tmpSelectedDrive->bWasDeleted = true; tmpSelectedDrive->bWasDeleted = true;
Logger::logThis()->info("Finished delete for: " + tmpSelectedDrive->getModelName() + "-" + tmpSelectedDrive->getSerial()); Logger::logThis()->info("Finished delete for: " + tmpSelectedDrive->getModelName() + "-" + tmpSelectedDrive->getSerial());
ui->updateTUI(&listDrives, u8SelectedEntry); ui->updateTUI(&listDrives, u16SelectedEntry);
} }
} }
@ -599,24 +600,24 @@ void reHDD::handleArrowKey(TUI::UserInput userInput)
switch (userInput) switch (userInput)
{ {
case TUI::UserInput::DownKey: case TUI::UserInput::DownKey:
u8SelectedEntry++; u16SelectedEntry++;
if (u8SelectedEntry >= u8EntrySize) if (u16SelectedEntry >= u8EntrySize)
{ {
u8SelectedEntry = 0; u16SelectedEntry = 0;
} }
break; break;
case TUI::UserInput::UpKey: case TUI::UserInput::UpKey:
if (u8SelectedEntry == 0) if (u16SelectedEntry == 0)
{ {
u8SelectedEntry = (u8EntrySize - 1); u16SelectedEntry = (u8EntrySize - 1);
} }
else else
{ {
u8SelectedEntry--; u16SelectedEntry--;
} }
break; break;
default: default:
u8SelectedEntry = 0; u16SelectedEntry = 0;
break; break;
} }