diff --git a/README.md b/README.md index 7721f28..6ed9510 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ All character types are stored in ASCII where the smallest byte corresponds to t | `0...3` | *signature*
`PODX` | | `4...7` | *endianness*
`LITE` little endian
`BIGE` big endian | | `8...11` | *checksum*
`NONE` no checksum
`AD32` adler32
`CR32` crc32 | -| `12...15` | *reserved* | +| `12...15` | *reserved*
`NONE` | #### BODY | byte(s) | value(s) diff --git a/src/PxLoadFile.cpp b/src/PxLoadFile.cpp index 7e91c65..f60c040 100644 --- a/src/PxLoadFile.cpp +++ b/src/PxLoadFile.cpp @@ -299,6 +299,13 @@ PxResult pxLoadFile(PxContainer* container, const char* fileName, PxChecksum che { return PS_FILE_CORRUPT; } + + // Reserved + if (memcmp(header + 12, cNONE, 4) != 0) + { + return PS_FILE_CORRUPT; + } + // Calculate checksum diff --git a/src/PxSaveFile.cpp b/src/PxSaveFile.cpp index 1baf679..f7cca4e 100644 --- a/src/PxSaveFile.cpp +++ b/src/PxSaveFile.cpp @@ -177,8 +177,8 @@ PxResult pxSaveFile(PxContainer* container, const char* fileName, PxCompression return PS_ARGUMENT_ERROR; } - // Padding - memset(header + 12, 0, 4); + // Reserved Bytes + memcpy(header + 12, cNONE, 4); file.write(header, 16);