Missing Check for lseek Return Value

This commit is contained in:
2025-12-09 21:31:31 +01:00
parent c4cbcb99b5
commit 228d8ecf6c
2 changed files with 12 additions and 6 deletions

View File

@ -47,7 +47,7 @@ private:
inline double calcProgress();
int iRewindDrive(fileDescriptor file);
unsigned long getDriveSizeInBytes(fileDescriptor file);
long getDriveSizeInBytes(fileDescriptor file);
unsigned int uiCalcChecksum(fileDescriptor file, Drive *drive, int *ipSignalFd);
void cleanup();
};

View File

@ -239,19 +239,25 @@ int Shred::iRewindDrive(fileDescriptor file)
}
}
unsigned long Shred::getDriveSizeInBytes(fileDescriptor file)
long Shred::getDriveSizeInBytes(fileDescriptor file)
{
unsigned long ulDriveSizeTmp = lseek(file, 0L, SEEK_END);
long liDriveSizeTmp = lseek(file, 0L, SEEK_END);
if (liDriveSizeTmp == -1)
{
perror("unable to get drive size");
return 0L;
}
if (0 != iRewindDrive(file))
{
ulDriveSizeTmp = 0U;
liDriveSizeTmp = 0L;
}
#ifdef DEMO_DRIVE_SIZE
ulDriveSizeTmp = DEMO_DRIVE_SIZE;
liDriveSizeTmp = DEMO_DRIVE_SIZE;
#endif
return ulDriveSizeTmp;
return liDriveSizeTmp;
}
unsigned int Shred::uiCalcChecksum(fileDescriptor file, Drive *drive, int *ipSignalFd)