]> granicus.if.org Git - xz/commitdiff
xz: Fix xz on EBCDIC systems.
authorLasse Collin <lasse.collin@tukaani.org>
Thu, 3 Nov 2011 15:07:22 +0000 (17:07 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Thu, 3 Nov 2011 15:07:22 +0000 (17:07 +0200)
Thanks to Chris Donawa.

src/xz/coder.c

index 41193a7ec3d08f230f597192df19ed31e451cc3b..2ed88cdb2d9d3055cd67eaefa52b779e789bfc1b 100644 (file)
@@ -327,7 +327,10 @@ coder_set_compression_settings(void)
 static bool
 is_format_xz(void)
 {
-       return strm.avail_in >= 6 && memcmp(in_buf.u8, "\3757zXZ", 6) == 0;
+       // Specify the magic as hex to be compatible with EBCDIC systems.
+       static const uint8_t magic[6] = { 0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00 };
+       return strm.avail_in >= sizeof(magic)
+                       && memcmp(in_buf.u8, magic, sizeof(magic)) == 0;
 }