From 8096f26b302dcb0f0be6e33443fcab79086213ab Mon Sep 17 00:00:00 2001 From: Ayoub Zaki Date: Wed, 20 Nov 2024 10:52:52 +0100 Subject: [PATCH] Add defines for compression magics --- bmap-writer.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/bmap-writer.cpp b/bmap-writer.cpp index 50489ec..3e9e545 100644 --- a/bmap-writer.cpp +++ b/bmap-writer.cpp @@ -35,7 +35,16 @@ #include #define CHECKSUM_LENGTH 64 -#define RANGE_LENGTH 19 +#define RANGE_LENGTH 19 + +#define GZIP_MAGIC_0 0x1f +#define GZIP_MAGIC_1 0x8b +#define XZ_MAGIC_0 0xfd +#define XZ_MAGIC_1 '7' +#define XZ_MAGIC_2 'z' +#define XZ_MAGIC_3 'X' +#define XZ_MAGIC_4 'Z' +#define XZ_MAGIC_5 0x00 struct range_t { std::string checksum; @@ -121,14 +130,15 @@ bool isCompressed(const std::string &imageFile, std::string &compressionType) { file.read(reinterpret_cast(buffer), 6); file.close(); - // Check for gzip magic number - if (buffer[0] == 0x1f && buffer[1] == 0x8b) { + // Check for gzip magic numbers + if (buffer[0] == GZIP_MAGIC_0 && buffer[1] == GZIP_MAGIC_1) { compressionType = "gzip"; return true; } - // Check for xz magic number - if (buffer[0] == 0xfd && buffer[1] == '7' && buffer[2] == 'z' && buffer[3] == 'X' && buffer[4] == 'Z' && buffer[5] == 0x00) { + // Check for xz magic numbers + if (buffer[0] == XZ_MAGIC_0 && buffer[1] == XZ_MAGIC_1 && buffer[2] == XZ_MAGIC_2 && + buffer[3] == XZ_MAGIC_3 && buffer[4] == XZ_MAGIC_4 && buffer[5] == XZ_MAGIC_5) { compressionType = "xz"; return true; }