diff options
author | srs5694 <srs5694@users.sourceforge.net> | 2010-01-20 00:57:37 -0500 |
---|---|---|
committer | srs5694 <srs5694@users.sourceforge.net> | 2010-01-20 00:57:37 -0500 |
commit | fd058aeda5d9042f52fdabf0109904d7d5dd2ce1 (patch) | |
tree | 82cb099bc9cc7edee9ea965ababc4886ed5f8d8b /support.cc | |
parent | 245a6a5a280cb021faa54bbcb931415f3d182dd9 (diff) | |
download | sgdisk-fd058aeda5d9042f52fdabf0109904d7d5dd2ce1.tar.gz |
Fixed bug that caused disk size to be read incorrectly on 32-bit
versions of FreeBSD.
Diffstat (limited to 'support.cc')
-rw-r--r-- | support.cc | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -588,6 +588,7 @@ int myWrite(int fd, char* buffer, int numBytes) { // to work around a problem returning a uint64_t value on Mac OS. uint64_t disksize(int fd, int *err) { long sz; // Do not delete; needed for Linux + uint64_t size = 0; // Do not delete; needed for FreeBSD long long b; // Do not delete; needed for Linux uint64_t sectors = 0; // size in sectors off_t bytes = 0; // size in bytes @@ -602,9 +603,9 @@ uint64_t disksize(int fd, int *err) { *err = ioctl(fd, DKIOCGETBLOCKCOUNT, §ors); #else #ifdef __FreeBSD__ - *err = ioctl(fd, DIOCGMEDIASIZE, &sz); + *err = ioctl(fd, DIOCGMEDIASIZE, &size); b = GetBlockSize(fd); - sectors = sz / b; + sectors = size / b; #else *err = ioctl(fd, BLKGETSIZE, &sz); if (*err) { |