Missing Check for lseek Return Value
This commit is contained in:
@ -47,7 +47,7 @@ private:
|
|||||||
|
|
||||||
inline double calcProgress();
|
inline double calcProgress();
|
||||||
int iRewindDrive(fileDescriptor file);
|
int iRewindDrive(fileDescriptor file);
|
||||||
unsigned long getDriveSizeInBytes(fileDescriptor file);
|
long getDriveSizeInBytes(fileDescriptor file);
|
||||||
unsigned int uiCalcChecksum(fileDescriptor file, Drive *drive, int *ipSignalFd);
|
unsigned int uiCalcChecksum(fileDescriptor file, Drive *drive, int *ipSignalFd);
|
||||||
void cleanup();
|
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))
|
if (0 != iRewindDrive(file))
|
||||||
{
|
{
|
||||||
ulDriveSizeTmp = 0U;
|
liDriveSizeTmp = 0L;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEMO_DRIVE_SIZE
|
#ifdef DEMO_DRIVE_SIZE
|
||||||
ulDriveSizeTmp = DEMO_DRIVE_SIZE;
|
liDriveSizeTmp = DEMO_DRIVE_SIZE;
|
||||||
#endif
|
#endif
|
||||||
return ulDriveSizeTmp;
|
return liDriveSizeTmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int Shred::uiCalcChecksum(fileDescriptor file, Drive *drive, int *ipSignalFd)
|
unsigned int Shred::uiCalcChecksum(fileDescriptor file, Drive *drive, int *ipSignalFd)
|
||||||
|
|||||||
Reference in New Issue
Block a user