Fix an overflow when calculating free space and capacity. Thanks YellowOnion. Fixes issue #584

This commit is contained in:
David Sansome 2010-08-07 10:00:20 +00:00
parent a9b780ba08
commit aadd38708f
1 changed files with 2 additions and 2 deletions

View File

@ -84,7 +84,7 @@ quint64 FileSystemCapacity(const QString& path) {
#if defined(Q_OS_UNIX)
struct statvfs fs_info;
if (statvfs(path.toLocal8Bit().constData(), &fs_info) == 0)
return fs_info.f_blocks * fs_info.f_bsize;
return quint64(fs_info.f_blocks) * quint64(fs_info.f_bsize);
#elif defined(Q_OS_WIN32)
_ULARGE_INTEGER ret;
if (GetDiskFreeSpaceEx(QDir::toNativeSeparators(path).toLocal8Bit().constData(),
@ -99,7 +99,7 @@ quint64 FileSystemFreeSpace(const QString& path) {
#if defined(Q_OS_UNIX)
struct statvfs fs_info;
if (statvfs(path.toLocal8Bit().constData(), &fs_info) == 0)
return fs_info.f_bavail * fs_info.f_bsize;
return quint64(fs_info.f_bavail) * quint64(fs_info.f_bsize);
#elif defined(Q_OS_WIN32)
_ULARGE_INTEGER ret;
if (GetDiskFreeSpaceEx(QDir::toNativeSeparators(path).toLocal8Bit().constData(),