diff options
author | Rod Smith <rodsmith@rodsbooks.com> | 2021-02-01 10:19:50 -0500 |
---|---|---|
committer | Rod Smith <rodsmith@rodsbooks.com> | 2021-02-01 10:19:50 -0500 |
commit | f063fe08e424c99f133df18bf9dce49c851bcb0a (patch) | |
tree | b08fed3d2c7e4d9e2546f91fa757d8eb6c6e74a2 | |
parent | 6180deb472c302c47f4d4acff8f2123d10824364 (diff) | |
download | sgdisk-f063fe08e424c99f133df18bf9dce49c851bcb0a.tar.gz |
Fix spurious warnings of problems on MBR disks
-rw-r--r-- | NEWS | 7 | ||||
-rw-r--r-- | gpt.cc | 18 | ||||
-rw-r--r-- | support.h | 2 |
3 files changed, 21 insertions, 6 deletions
@@ -1,3 +1,10 @@ +1.0.7 (?/??/2021): +------------------ + +- Fixed bug that caused spurious warnings about the partition table + header claiming an invalid size of partition entries when reading + some MBR disks. + 1.0.6 (1/13/2021): ------------------ @@ -1042,11 +1042,19 @@ int GPTData::LoadHeader(struct GPTHeader *header, DiskIO & disk, uint64_t sector *crcOk = CheckHeaderCRC(&tempHeader); if (tempHeader.sizeOfPartitionEntries != sizeof(GPTPart)) { - cerr << "Warning: Partition table header claims that the size of partition table\n"; - cerr << "entries is " << tempHeader.sizeOfPartitionEntries << " bytes, but this program "; - cerr << " supports only " << sizeof(GPTPart) << "-byte entries.\n"; - cerr << "Adjusting accordingly, but partition table may be garbage.\n"; - tempHeader.sizeOfPartitionEntries = sizeof(GPTPart); + // Print the below warning only if the CRC is OK -- but correct the + // problem either way. The warning is printed only on a valid CRC + // because otherwise this warning will display inappropriately when + // reading MBR disks. If the CRC is invalid, then a warning about + // that will be shown later, so the user will still know that + // something is wrong. + if (*crcOk) { + cerr << "Warning: Partition table header claims that the size of partition table\n"; + cerr << "entries is " << tempHeader.sizeOfPartitionEntries << " bytes, but this program "; + cerr << " supports only " << sizeof(GPTPart) << "-byte entries.\n"; + cerr << "Adjusting accordingly, but partition table may be garbage.\n"; + } + tempHeader.sizeOfPartitionEntries = sizeof(GPTPart); } if (allOK && (numParts != tempHeader.numParts) && *crcOk) { @@ -8,7 +8,7 @@ #include <stdlib.h> #include <string> -#define GPTFDISK_VERSION "1.0.6" +#define GPTFDISK_VERSION "1.0.6.1" #if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__) // Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64 |