Missing Check for lseek Return Value
This commit is contained in:
@ -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();
|
||||
};
|
||||
|
||||
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user