From 4afc1552307d32d9b8e9d5a9de6e54060273e8f2 Mon Sep 17 00:00:00 2001 From: localhorst Date: Sun, 7 Dec 2025 19:11:35 +0100 Subject: [PATCH] Unchecked strerror() with Invalid Errno --- src/shred.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/shred.cpp b/src/shred.cpp index 2255310..8fd3fae 100644 --- a/src/shred.cpp +++ b/src/shred.cpp @@ -36,7 +36,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) ostringstream address; address << (void const *)&(*drive); Logger::logThis()->info("Shred-Task started - Drive: " + drive->getModelName() + "-" + drive->getSerial() + " @" + address.str()); - drive->bWasShredStarted = true; //Mark drive as partly shredded + drive->bWasShredStarted = true; // Mark drive as partly shredded #ifdef DRYRUN for (int i = 0; i <= 500; i++) @@ -60,7 +60,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) randomSrcFileDiscr = open(randomsrc, O_RDONLY | O_LARGEFILE); if (randomSrcFileDiscr == -1) { - std::string errorMsg(strerror(randomSrcFileDiscr)); + std::string errorMsg(strerror(errno)); Logger::logThis()->error("Shred-Task: Open random source failed! " + errorMsg + " - Drive: " + drive->getSerial()); perror(randomsrc); cleanup(); @@ -71,7 +71,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) driveFileDiscr = open(cpDrivePath, O_RDWR | O_LARGEFILE); if (driveFileDiscr == -1) { - std::string errorMsg(strerror(driveFileDiscr)); + std::string errorMsg(strerror(errno)); Logger::logThis()->error("Shred-Task: Open drive failed! " + errorMsg + " - Drive: " + drive->getSerial()); perror(cpDrivePath); cleanup(); @@ -82,7 +82,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) ssize_t readRet = read(randomSrcFileDiscr, ucKey, sizeof(ucKey)); if (readRet <= 0) { - std::string errorMsg(strerror(readRet)); + std::string errorMsg(strerror(errno)); Logger::logThis()->error("Shred-Task: Read random key failed! " + errorMsg + " - Drive: " + drive->getSerial()); perror(randomsrc); cleanup(); @@ -93,7 +93,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) this->ulDriveByteSize = getDriveSizeInBytes(driveFileDiscr); drive->sShredSpeed.chronoShredTimestamp = std::chrono::system_clock::now(); // set inital timestamp for speed metric - drive->sShredSpeed.ulSpeedMetricBytesWritten = 0U; // uses to calculate speed metric + drive->sShredSpeed.ulSpeedMetricBytesWritten = 0U; // uses to calculate speed metric #ifdef LOG_LEVEL_HIGH Logger::logThis()->info("Shred-Task: Bytes-Size of Drive: " + to_string(this->ulDriveByteSize) + " - Drive: " + drive->getSerial()); @@ -132,7 +132,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) if (iByteShredded <= 0) { - std::string errorMsg(strerror(iByteShredded)); + std::string errorMsg(strerror(errno)); Logger::logThis()->error("Shred-Task: Write to drive failed! " + errorMsg + " - Drive: " + drive->getSerial()); perror("unable to write random data"); cleanup();