From 55fd02f83ecd6cbd6925a3e8a3d43b8d4ef2a17c Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Thu, 3 Nov 2011 17:07:22 +0200 Subject: [PATCH] xz: Fix xz on EBCDIC systems. Thanks to Chris Donawa. --- src/xz/coder.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/xz/coder.c b/src/xz/coder.c index b123ec5b..69b1225d 100644 --- a/src/xz/coder.c +++ b/src/xz/coder.c @@ -284,7 +284,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; }