From 59d312b0e25b3279278bafd389c3c2fe9127c131 Mon Sep 17 00:00:00 2001 From: Jose A Date: Thu, 29 Jul 2021 15:51:36 -0400 Subject: [PATCH] Convert bad file to valid hex file Fixes what https://github.com/rust-lang/flate2-rs/pull/277 tried to fixed, changing the name alone wont fix the problem as the renamed file still contains the GZ magic number and will still be detected by a file scanner as a corrupt GZ file. Used the following to generate the hex file. ``` fn bin_to_hex(bin_reader: impl Read, hex_writer: impl Write) { let bin_reader = BufReader::new( bin_reader); let mut hex_writer = BufWriter::new( hex_writer); for byte in bin_reader.bytes() { let byte = byte.unwrap(); write!(hex_writer, "{:X} ", byte).unwrap(); } hex_writer.flush().unwrap(); } ``` --- tests/corrupt-file.gz.hex | 1 + tests/corrupt-gz-file.bin | Bin 7128 -> 0 bytes tests/gunzip.rs | 38 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 tests/corrupt-file.gz.hex delete mode 100644 tests/corrupt-gz-file.bin diff --git a/tests/corrupt-file.gz.hex b/tests/corrupt-file.gz.hex new file mode 100644 index 000000000..6411883f9 --- /dev/null +++ b/tests/corrupt-file.gz.hex @@ -0,0 +1 @@ +1F 8B 8 0 0 0 0 0 0 3 4D 9B 4B AE 2E B7 D 84 C7 BF 56 11 C0 F3 1F 7A 52 D2 2 32 C8 34 3B 8 10 3 31 90 17 E0 9B FD A7 BE 52 AB AF 7 86 EF E1 E9 56 EB 41 15 8B 45 9E 5F 7E F9 FC F2 4B FA F1 DB BF 7E FD FD C7 AF FF FD FC FE DB BF FE F7 CF BF FD F8 F5 EF 7F FA F3 5F FE FA F9 AF FE F5 EF 1F 7F FA C7 7F 7E FF F1 7B CA 9F FC CD 6D E4 5A F7 27 CA 8A 96 CA B1 94 5A 42 96 9C 77 AA 8F A5 D4 FA 89 5C 66 4F ED B1 F4 51 3E 63 B7 DE 53 7F 2C AD CD CF 58 63 B4 34 DE B7 3E 63 AE D8 29 9E 4F 6D C 65 8C 34 AF 21 34 4A F4 BA D2 7A DE C9 53 A3 8C D9 73 DA B6 AC B2 35 BF 31 F2 AA A9 78 CA 51 6B CB F1 19 BD EB 53 85 39 EB 25 3F A4 87 73 2A CC B9 68 E0 86 A5 8E 48 85 39 B7 88 B5 FA 67 D4 D5 47 2A CC 39 76 9D 53 E3 D4 31 77 2A E3 53 BE 75 8F AE 97 6A 64 BD 14 9F FA 6D 63 4E 4D B9 E5 5D 52 99 9F FE CD 7B EF C2 87 B2 66 B3 3E A1 41 16 4F F4 55 F5 E5 FD 29 FA 74 2D AC 49 1B 9A 6A FE 94 F6 DD 73 36 2D 5B 43 A5 5A 3E 65 7E 7B 8F A5 BD 2B 51 93 B6 B5 EC EF D0 56 69 C3 B5 ED A9 36 1B E6 6E 9F 68 1E A3 FB 95 59 75 24 A3 B5 9C EA F0 A0 2D F7 4F C4 CC 23 E9 37 9B 8F 4C 8D 31 D7 58 A9 4E 4D AC 6B 9F 75 AE AB 73 8A EB D3 BE 6B 94 55 30 4C 8D B1 B5 B8 A2 6D D4 12 56 D3 C9 37 CD 54 DB A8 2D 8B B9 77 A4 C6 B6 6A 33 A2 6B 2C 4D 3D A7 C6 B6 D6 98 5 6F 89 DD F4 E DB AA 1F EB D0 5C A3 65 3D 63 57 88 36 62 EB A1 21 87 49 ED F1 85 BC B2 9E EA 53 FE D2 AE 37 AC A9 CF B7 B5 76 6A F3 9E 3E 9E 57 77 1B A9 BD E C1 F0 65 4F 8D B5 AF D7 68 32 F2 CF 95 53 CF EF 53 38 A8 16 94 7A 79 7D 8B 5D D6 C6 A7 FE B8 71 96 7B CA 45 D7 90 D3 B6 6B EA 98 4A 2B A9 7B F6 5A F3 B6 DF 76 6D 4B F7 EC F7 AC F2 50 9D E9 DC 1A 3E EC 5E 9A D5 E0 94 B5 FF 7D 1E F7 9A 19 3F 1D 7B A6 CE DC 63 D5 BE F4 96 DC 69 27 B9 95 DC 4B 27 8C A1 CD 9A 46 D6 9 68 BE F2 88 31 22 72 D2 75 6A DF 32 75 C6 1A 96 75 68 41 FD 1B 79 31 86 76 7D 26 F6 41 4F 34 9E 58 79 EC 34 FA 67 7E A3 76 BE BB 75 8B D3 18 9F F5 9D 75 C9 45 22 E3 F9 3 D7 68 63 69 F6 51 B4 B2 34 A6 C BA AA F8 6E 95 83 A5 B1 64 A8 BA 64 1C C5 98 7A 62 33 46 69 5A 43 F4 51 5B 8A AC AF AC 18 BA 3C 31 8A DC 4B 1F 8B 8 0 0 0 0 0 0 3 4D 9B 4B AE 2E B7 D 84 C7 BF 56 11 C0 F3 1F 7A 52 D2 2 32 C8 34 3B 8 10 3 31 90 17 E0 9B FD A7 BE 52 AB AF 7 86 EF E1 E9 56 EB 41 15 8B 45 9E 5F 7E F9 FC F2 4B FA F1 DB BF 7E FD FD C7 AF FF FD FC FE DB BF FE F7 CF BF FD F8 F5 EF 7F FA F3 5F FE FA F9 AF FE F5 EF 1F 7F FA C7 7F 7E FF F1 7B CA 9F FC CD 6D E4 5A F7 27 CA 8A 96 CA B1 94 5A 42 96 9C 77 AA 8F A5 D4 FA 89 5C 66 4F ED B1 F4 51 3E 63 B7 DE 53 7F 2C AD CD CF 58 63 B4 34 DE B7 3E 63 AE D8 29 9E 4F 6D C 65 8C 34 AF 21 34 4A F4 BA D2 7A DE C9 53 A3 8C D9 73 DA B6 AC B2 35 BF 31 F2 AA A9 78 CA 51 6B CB F1 19 BD EB 53 85 39 EB 25 3F A4 87 73 2A CC B9 68 E0 86 A5 8E 48 85 39 B7 88 B5 FA 67 D4 D5 47 2A CC 39 76 9D 53 E3 D4 31 77 2A E3 53 BE 75 8F AE 97 6A 64 BD 14 9F FA 6D 63 4E 4D B9 E5 5D 52 99 9F FE CD 7B EF C2 87 B2 66 B3 3E A1 41 16 4F F4 55 F5 E5 FD 29 FA 74 2D AC 49 1B 9A 6A FE 94 F6 DD 73 36 2D 5B 43 A5 5A 3E 65 7E 7B 8F A5 BD 2B 51 93 B6 B5 EC EF D0 56 69 C3 B5 ED A9 36 1B E6 6E 9F 68 1E A3 FB 95 59 75 24 A3 B5 9C EA F0 A0 2D F7 4F C4 CC 23 E9 37 9B 8F 4C 8D 31 D7 58 A9 4E 4D AC 6B 9F 75 AE AB 73 8A EB D3 BE 6B 94 55 30 4C 8D B1 B5 B8 A2 6D D4 12 56 D3 C9 37 CD 54 DB A8 2D 8B B9 77 A4 C6 B6 6A 33 A2 6B 2C 4D 3D A7 C6 B6 D6 98 5 6F 89 DD F4 E DB AA 1F EB D0 5C A3 65 3D 63 57 88 36 62 EB A1 21 87 49 ED F1 85 BC B2 9E EA 53 FE D2 AE 37 AC A9 CF B7 B5 76 6A F3 9E 3E 9E 57 77 1B A9 BD E C1 F0 65 4F 8D B5 AF D7 68 32 F2 CF 95 53 CF EF 53 38 A8 16 94 7A 79 7D 8B 5D D6 C6 A7 FE B8 71 96 7B CA 45 D7 90 D3 B6 6B EA 98 4A 2B A9 7B F6 5A F3 B6 DF 76 6D 4B F7 EC F7 AC F2 50 9D E9 DC 1A 3E EC 5E 9A D5 E0 94 B5 FF 7D 1E F7 9A 19 3F 1D 7B A6 CE DC 63 D5 BE F4 96 DC 69 27 B9 95 DC 4B 27 8C A1 CD 9A 46 D6 9 68 BE F2 88 31 22 72 D2 75 6A DF 32 75 C6 1A 96 75 68 41 FD 1B 79 31 86 76 7D 26 F6 41 4F 34 9E 58 79 EC 34 FA 67 7E A3 76 BE BB 75 8B D3 18 9F F5 9D 75 C9 45 22 E3 F9 3 D7 68 63 69 F6 51 B4 B2 34 A6 C BA AA F8 6E 95 83 A5 B1 64 A8 BA 64 1C C5 98 7A 62 33 46 69 5A 43 F4 51 5B 8A AC AF AC 18 BA 3C 31 8A DC 4B 57 36 BE B3 6D BE A2 1D 18 29 B4 5D DF DE 42 AE A2 23 28 29 9A 6F 4A DD 78 68 D9 7A A0 6B B1 6B 46 C6 75 AA 40 24 B8 6D 4B C7 3C FD C4 4C 11 F8 DF DC 9A 4E E8 CC F4 55 36 75 6A 11 93 8F F4 9A 82 3D ED 39 22 98 47 ED 2 15 DC A1 B6 3A F5 72 F4 D5 66 9A 78 83 70 68 2F 26 2F 77 4F D3 CE 30 F5 A9 AD D9 6A 51 2D 4D 3B 43 D7 C5 58 72 99 3A 75 71 E7 75 86 BE B9 87 AB EB A9 7E FD 83 BD CB 7B E8 A9 F1 BA C A6 52 76 9A AF 2B 67 D0 B0 EA BE CE B 6D BA C3 3A 27 8D 98 E6 BA 26 D0 4E 98 A3 A7 AE 2B 4F 9E 9A 59 93 5F AF 2B 4F 3C AB E9 CE AD B C8 B2 1 8A BA 16 EB B8 B2 E0 C6 26 CD 38 AD 76 50 11 8 7 15 E5 92 AB 1F 54 9C 6B 1A 15 65 19 76 DB B1 2 4B D9 2D AD 38 6E B 90 8C CA C5 5C D3 A8 A8 7D 3B A8 58 93 F6 11 54 EC B8 9C DC 45 33 DA 46 C5 C1 D 11 5A AE B4 B3 CF BA 81 79 4D 77 26 B1 83 F2 7D 8D D9 67 D3 8F 15 4C 14 6C EA B3 F2 C9 99 4 6C C0 97 0 13 4C AC 25 6D 3 5C DB 9B DB DA E4 C5 3A 29 41 60 9F 9B 20 A4 D3 4D FA 7 86 AD AB 17 AD F1 CA 34 26 6A 19 B8 42 69 49 EF 7A 50 CE 4A EE A2 31 C C5 DA 23 0 6D 2 E7 39 3 8A 1A A3 2 79 4B 31 20 73 E3 96 EE 5 20 A8 8B 26 4B 35 2C 46 39 38 C9 33 ED E0 22 D8 BA 4A ED B2 F4 83 8C 85 87 B4 0 85 8E 3C E 34 82 8B 95 4F C5 5 46 FB FB E2 91 79 90 51 D7 65 F9 D6 28 9E E4 EB 16 8B D1 BB 2 A5 6C D7 2F 84 48 5A EC E6 B9 92 DF E7 6 E0 B8 15 7A CA F5 8C CC 78 55 28 91 4A B9 28 B7 B9 AA 72 4F CD B6 DC 70 AD B D 3E 16 22 E6 D D8 A C4 0 64 F0 DC D D9 15 40 5A CB B6 B8 36 1D 91 20 52 70 5B CA 3C 18 B9 C0 1C 1D B7 B6 A8 AC 83 91 A3 17 A0 B EF D6 B7 ED 6D 8F 2B 97 A9 D9 D5 6C 77 9B 4B 61 43 28 C9 62 6B 31 4C F6 D0 89 F DC 29 41 33 C0 C9 81 BB 8 61 35 B 5 44 80 32 B8 27 1A 4A 6B 57 44 14 52 AE 61 48 2E BA D1 45 48 24 A8 2C 1 BA CF CC 49 12 2D BF 38 F2 2 2B 75 49 E4 48 80 65 33 5 D9 DA 5E 59 16 48 D7 72 21 72 64 E8 8F 42 9B E0 B2 EB 7 3C AF 4F 31 87 2C 4B 17 A9 61 97 5 57 B2 14 0 53 E0 B2 EC 8C 58 AA C6 D1 FC B4 37 2 AA AC 39 6B 89 82 4C 5D 2C CE 55 F6 E4 DD 17 AA EE 45 14 EF 9C 2 E1 E3 DB B5 54 2C A F7 B2 4 57 69 55 42 7F E4 A1 19 2A 2C A 37 63 1F DC D4 2D 2E 8D B A9 90 20 DF D 50 29 C1 72 40 CE 41 48 1C C2 58 71 9B 6C E8 CC B5 D9 D5 14 97 8B 63 A2 80 61 18 4E 4B 68 46 8E 89 42 CF 2 9E EA AA 6A DA 8E 89 D0 B8 E9 95 C0 AE 4E 4C 9C FA 20 6F B6 81 EF 9D A0 28 28 5D 6 D0 F3 CD B 84 A2 88 F8 23 BB D9 F 12 76 39 2C FE 58 39 CD BE 5E 5B E0 8F 9B 99 5C 9F F 1C 48 14 4C E3 8D D7 E7 B BE 37 85 C8 65 BC 81 BD 72 A8 6C C7 A8 7F 74 E5 A9 A9 CB F6 BA FC 82 87 D A8 DB 78 5D 1E B0 1B 1B 2E 39 C6 E5 97 13 5B 13 7 E5 30 1E 82 29 CC 16 80 65 BE 31 1F 86 69 53 F6 27 D6 A1 98 5C F0 D1 3A A4 73 EC 83 A6 3B 3 95 8A C6 22 90 F9 90 4C DD 7A 0 96 F9 A FF CD 32 37 2C 73 31 7A 54 3 2A 78 A9 B3 90 9F 3E C1 53 77 8B AF 65 2C DD 88 BA 9A 69 30 C4 93 F0 A9 9 14 13 4D 1D 80 2C 61 0 14 19 D0 36 88 93 CA 72 30 12 2A 3F 4 E0 10 DA 65 6A C9 F9 9 F4 6 E3 6C 5B 5A 23 36 E EE 8D 22 E8 61 9B 4 59 9F 8E B0 C9 23 DB 2B C5 2C 64 39 90 5E F1 F7 B9 98 F3 84 99 E8 EC CD 37 F1 A4 D9 4D 38 D9 32 5D 4A AE 84 80 C0 8C 53 5F 5A 84 49 31 1D 23 6B 85 16 A EA B5 85 8E 9C 8A AD C1 85 D4 89 43 B9 97 91 15 E7 7 5C D9 42 47 4E DD 54 C0 3A B8 93 E2 E1 F9 1 57 EE 16 68 7B E3 66 16 9D 92 27 87 82 77 59 17 1D 83 F5 37 DF B8 75 E3 BE 7E C6 93 15 3 CB BA 81 7F F2 81 B2 C0 AE 35 DE 77 F1 5A 1D 8E 6C D7 E3 59 A3 2 1B 9F BD A1 7F 1A 57 89 16 6B BD BE D CD 9C A0 D5 7A 63 3F D1 59 48 4A E6 90 F AE CA 4 B0 1A 69 76 79 80 35 43 B0 14 C6 B4 D4 5D 2F B0 3A C7 0 48 76 7B 80 35 C3 2D 87 62 AE 90 DF C0 3A 60 D3 2 D6 CA 53 CE 6F 74 30 40 AD 8E 50 16 12 9C 2C 87 D6 E0 BA 73 DA 6D 81 AE 80 75 D7 E6 B1 B9 FE 8A AB 2 D6 3A E1 1A F2 0 2D 8 62 F FD 6D B0 52 5 2E E5 38 F9 0 6B 9F A6 D6 58 8A 69 68 23 84 65 B1 25 59 AA 81 B5 F7 6A 20 E0 99 6 11 15 46 81 AB 1E A6 83 AB 8A B 1B 9E D6 B0 C0 66 63 8B A1 80 46 C2 2C C1 A B8 DA A3 3 59 CE 74 32 A9 CE D4 88 40 DD 19 67 99 8C 66 81 99 70 55 FB 5D 85 9E A6 A3 78 1A 59 A1 B2 B0 6C 3E 5A 39 3A D1 4F 25 59 A5 98 90 12 CC 82 19 CA 52 8D AB 82 0 18 A9 D2 9D EA 58 3A B3 DC CD 9C 34 93 CE F5 43 4A 7 AC 47 B4 5A 99 95 23 29 AC 14 C2 A9 7C 87 A1 CC 7 88 2B E0 AA E2 6F AA 27 8E 8A 97 76 C8 6B EB 95 F1 D7 43 4C 1B 1E 5A E7 60 5E 3F B1 91 24 7D B3 2F F5 62 E3 A8 37 4B AF D7 E1 1 0 51 53 B9 54 AD D7 E1 17 98 A7 15 68 BB EA 75 78 D1 3D 72 F5 4A 6 DA DF 77 7D A6 5 DB 9B B5 85 E9 29 67 58 2F 1D C8 A6 A7 1E EE A6 6D 70 A 92 76 AD A2 AE 87 A0 B2 46 E1 15 67 52 F7 3 AB 8B CF 76 F9 A5 F2 5C 73 75 4D 6E 39 9F AE A4 BE E5 81 55 62 A3 40 49 8B 70 D6 49 6E 35 9D BA 2B E9 A9 4E 3B C3 C7 29 4E 3A 79 AF 1F 96 AA 28 77 50 95 1 40 55 AE 35 64 57 53 3D C1 75 8B ED 0 AB 15 CB 3C E9 3B CF 74 11 CF 44 BC 4 56 1B DC 46 8 A9 F3 25 B8 92 C0 EB 90 4 AB 82 3A 25 5B 27 83 9F DE D3 20 3F 2F 6 51 58 64 F1 9C FB C9 E9 49 7 A3 55 B6 58 BE C8 4B E4 76 C2 A2 E0 99 7E 92 78 9C 44 C0 A6 ED D5 99 2B 8B 5F 1B 8B 52 4 DE A A7 F1 23 9C A4 5B A E0 82 2E 79 48 0 AB E2 86 CA 30 D AB 70 7 3D D3 99 A0 F9 40 86 BD 81 AB DA C C7 D2 1 89 61 E8 C1 FE 38 94 A 57 41 70 48 79 75 20 15 AA 5A 1 10 EF D4 E7 4F 1C 25 67 62 21 4A 41 35 81 1B 47 B3 27 2E AC 45 8E F8 99 16 1 AC 7B 31 DC 5 C7 58 6C 82 50 26 D5 F1 E6 F8 6C 83 6E 25 E3 BD 14 D8 8A 53 65 49 E3 A7 CB 3 B6 1D 7F 8C EB F2 24 AE 43 D1 2 D5 A3 BC B6 93 D4 EB 4C A3 BE F3 83 23 90 59 2A FC 3E D0 DA 96 39 2B 8E 1B FD 40 6B C7 FB B5 C1 59 8E 1B 27 43 CA CE 90 C2 57 28 4E 8A 24 A0 0 35 3 E1 C4 79 A9 B6 7A 74 93 6 CE 32 9C 24 89 2A 75 B3 58 86 DA E6 AC 2D 9C DC B 91 85 A0 E6 AC 44 6E C6 D6 92 4 E0 70 D6 6 B7 D6 19 F0 4C 75 7E 7F 32 23 41 BC 2C CD 9 7E 23 B9 5C DB CA 4E 37 B4 E 58 96 6E BE FC 66 E A7 F8 AD 98 63 2D DE 22 E9 EF 9B B AB 77 F1 BF 39 CD 59 17 9 79 B3 DF 4C B8 6F AC 89 DF 88 E9 69 9B 14 77 26 1A 11 B1 BC FB 10 57 76 9E 1F 71 E2 AA BE CE 55 5 5B CD 22 37 38 B6 AA 39 EB E0 19 A5 50 48 4D CD D8 A 6F 17 92 4E ED C6 EA C6 D6 6C CE 2A 22 20 CB 30 B6 6A 54 C6 61 F3 1D 4D 85 AD CD B0 4D 76 50 1D 4D 85 AD D9 D8 EE 3D 73 34 D5 92 74 98 84 75 42 82 83 A9 38 EB C2 1F C5 9 52 3D A1 54 94 35 E6 A1 35 1A EB 84 52 5D 1C C2 8C A0 15 5F DE D7 57 9C B9 29 9E 6B 81 BB 5D 7A DA 88 5D 62 3D A9 EE EB F3 27 85 82 74 8B C1 BD E9 FB 24 EF F7 BB AF 16 0 B4 76 7F E2 25 4 86 56 39 BD 6C AF CB A3 61 2A F1 D4 22 F6 9B F5 91 4 7 19 6D CB D7 E5 AF AC B4 12 7E 70 28 2B 9B 83 3A 37 65 AB 4F F6 9F 9 DB 3A 9C 90 AD 1D CA 1A C D7 A6 B0 AD 39 6D 15 B F0 4C 1A B2 55 73 DA DA 74 0 96 45 C3 2A 60 1C 5 A0 A1 58 A 6E B6 4C F3 91 0 1E A1 14 CD D0 12 80 E5 D5 E2 CF 9D 0 B BB D5 D7 10 EA A AE 83 92 38 90 46 C5 1B D0 7 C0 56 F3 86 41 A DB 8 B0 10 4B B6 61 A 4F 12 7C C1 94 95 98 23 AE 87 A D9 F B6 DA B7 91 E CB 38 6 78 5D AB 1E 26 E 20 23 60 D 0 A4 29 EE 30 30 19 8E 5C 44 7E B 68 A0 90 32 CC 14 C 26 B 7 28 A4 28 A5 A 0 7A A4 66 43 2B 2 21 A9 3F 96 62 68 25 A0 3 AD FA B8 93 53 41 AB C7 81 B2 36 C7 53 AD 70 1E 31 40 94 A9 39 9C 6A 37 AD 97 5 BA 51 73 34 D5 99 6D E4 D6 E0 8E B6 13 4C 5 AE D1 60 E A 80 B2 5D 6F C1 95 82 AC 58 B6 EB 2D 93 FB 2D D6 AA 3 A8 AF C 6A F6 A4 8 9A 5A CB 7F F0 34 39 B3 EE 6F 6B 17 20 2D 61 89 28 68 9 ED 5 C8 43 14 98 5E BB A4 80 38 A5 A0 86 A7 B5 17 E8 B1 AD E9 77 5F A0 DF 1C D9 66 93 8E 96 DB 21 A9 E0 98 38 4E 6A 47 CC 15 DE FA F8 B5 7 CC E5 64 4C 90 65 31 27 B6 AE ED 7 5B AD 80 E 51 FB E6 C4 D5 E7 61 DA CA 2D E8 E5 60 AB 8B 2 3E DD 5E 8D AD 9D FC 48 7E A0 B1 35 43 B0 B5 1F AD C1 6F 75 D3 56 18 82 F8 A3 A6 49 64 D2 23 93 48 31 77 C7 12 86 D6 8D A3 2F 8 7D 53 70 45 E 98 96 3 A B E9 B8 4D 43 57 B0 FB F1 D6 B6 7C 8A D2 21 68 ED 72 BF 81 40 20 40 C1 27 B4 E3 5A C5 30 FB CD DB 7A 37 A 7E 53 70 85 B6 2E 8E 4B 38 8A 28 DE 4C 5B 2D DE C8 BB 79 A6 3 AD 4A C1 1 DB 55 75 CC 63 18 5A 8B 71 94 95 8F B0 1A B0 BA D5 0 61 9 F2 A9 91 15 A4 F 5F C5 B1 E 6B 6D 47 47 E5 99 6D 64 AD CE CE 84 AC 1A C8 D1 54 C8 CA E2 85 AC 2C D5 C1 54 C8 BA 4D AD C5 F7 65 AA 87 B5 A2 2B 45 27 D6 B4 13 4A C5 5A 17 30 AD 8D D7 34 4F 28 15 B4 2E 94 C 1C 5F B6 17 1E 97 4B 4B 1D DB 85 47 82 B4 A0 15 F 8D EB F1 C5 EA 3D FA 5A 8B 37 63 2 2A 76 65 93 E3 7A FC 80 53 1A 5B DB 7C CB 57 68 3C 42 1D 9D FB BC 1E 9F 3B 19 93 A6 29 5B 7D 15 7 A0 35 28 36 FC 44 79 7 68 85 DA F6 E8 BD E2 F6 64 EB FA 15 CF 8D 3 AD 78 1B D0 CA 94 AD F8 2 AD B8 92 7E E2 D5 79 A0 75 90 A6 9 FA B4 C3 CE 5B B5 D 54 6D 4 AD 6C BA F3 D6 D8 B9 A3 19 A0 1F 25 7D CC D0 CA 9A C4 AC 34 F8 2A 86 56 60 14 56 D6 9E E8 1A D3 C0 AA EC A2 AD 66 60 D D6 D7 29 92 35 A2 2B D7 8D 69 7 C4 96 50 68 6E 39 96 15 56 ED CB 8A 23 B1 F2 D6 A6 2E A0 A5 1C 8D 15 5F 2A E8 41 6D 59 1D 38 DC 52 50 44 1 66 3F C2 2C 19 10 59 6A DB AE 67 AD 79 58 2B CE BE 51 C3 E4 34 D3 65 22 36 6D C3 62 14 9B AD AA 7A E4 DD E 6B 85 DF 28 1 D0 C 77 3F AC D5 82 81 E7 E3 F4 D4 2A B1 10 3A 30 84 91 35 9C C1 4F C3 AF A3 A9 1C CC F2 9C BE 46 41 68 1D 64 5D A7 90 D0 78 71 3F C8 6A CD 16 42 96 FA 13 4B A1 35 10 87 29 48 E8 4F 2C 25 E5 AE D0 56 1D 5B CF D7 57 CC 8B 2A 49 41 CF D7 59 16 B3 55 7A 19 B2 F5 D7 A7 D0 52 C4 65 65 BB 3E 6F 28 10 6D 65 BC 3F AA 62 42 4D C5 87 9E AF CF 93 A8 AE E5 A9 AC D7 6D 75 88 4B A9 40 EA 47 8 56 88 3F A2 66 57 30 E8 47 8 DE 53 71 6F 99 B5 6A 2A A7 FE B9 B3 9D F 2D 5B A6 9B 33 11 D7 87 30 28 75 A7 AE 6C 75 AD AE 3F 65 99 FA A9 48 D9 50 19 69 9C 8A 54 B7 8C 10 58 C2 25 29 C8 A6 86 97 43 76 D7 40 91 91 8B 8B 16 8C 4C 11 B4 40 59 AC 7 F0 C 44 12 FD D2 EB 13 6C 88 74 19 11 27 E1 4F CB C6 82 DB 28 C8 64 97 3D 27 96 6A A1 95 28 A7 AC 4B F3 AB 8 4 4A DB 28 40 B6 63 E9 D6 59 29 D1 6A 51 94 E2 B4 FB 2 D6 CA 35 16 67 15 8F EC D6 7D 85 C6 24 77 43 6F C8 32 D AC 94 EB 0 56 2C CB B7 2A 6F D7 AB 26 E3 6C 23 EB E4 19 65 D0 5A 96 EB A1 3A 1D A7 43 44 C9 DE 8A 91 15 76 81 1E 40 5 B1 FA 46 6F 38 28 92 3E A6 66 64 1D 28 15 41 1D 5D A6 7E 90 D5 5C A3 2B 28 CA 34 E 67 B5 1A B E6 A7 7E E2 A8 36 D0 32 6B 67 71 27 8C 8A 3D B9 4A A6 10 C3 60 AF A7 0 4 E4 13 B2 5D 70 B4 98 92 A9 9D F6 5B 16 CD 99 8D 10 F3 D6 78 FD A7 46 80 24 48 78 ED 6F 61 B4 9D 62 15 6B 78 2B A3 79 39 EB 5D 8C 77 E9 80 29 C2 84 4A F4 7E 1D BE A3 FC 4 A2 5E 7F 65 E0 41 29 CA 65 8E FE C8 C0 3A DA C 68 6D EA B1 47 6 26 9 74 21 5F 84 47 B6 7D 49 AB 5E 15 76 CA E4 CC 55 C8 1A D4 C 9A 3D C7 99 AB 7E BB 70 41 E5 6C DA CE 71 CE 21 7 C0 A9 9 52 B6 6D F B2 2E A0 55 E4 AA F 20 87 1B DB 5D B8 92 9F 3E F1 95 60 35 68 E 90 5 E7 79 B4 6 67 17 9D 0 AB 89 2E 13 92 B5 4 7 63 3D 89 3B FB 20 94 4E E0 B9 59 EB 32 6B 15 24 77 C5 57 CB AA 96 4 10 93 7A 1C 8D A0 58 DC A2 FF 81 32 14 6F 15 17 4 A AE 1B 2E 8C 2D 7B 65 50 32 8E 6E 6C 1D DD 75 7D 2E 3B 58 F8 95 81 61 16 49 3A EA 91 DE D1 97 A8 4F D 26 18 D4 C 4A 61 EA 28 AD DA 32 E7 A7 A B8 B8 E9 84 8C 77 C7 D3 41 4F 1 4C B6 B1 FB E A7 80 2B F7 8D 52 97 4C E5 80 6B C 8B 62 DC F6 13 4C 15 1F BA A9 43 67 D7 6E 34 5D CE 1C 95 F0 A7 FE 4 53 71 9D 71 B4 56 7D F3 A9 9E BA C2 AA 31 19 2C AE 5 A4 56 82 87 ED D6 C 8E 4A 9D 41 CC 79 6B 6 FD A9 6B 63 DB 8F D 4A 36 36 55 D6 BE 2E CA D7 87 B3 6A 9B D7 45 79 72 F9 A1 3C 5F 33 39 4A 70 A7 D7 A3 58 6B E5 DD 76 A0 35 93 35 2B D3 E7 D0 4E 11 55 81 61 1A 5A B A6 93 32 51 20 C0 BD E9 36 70 E6 AA D 9B 0 B0 98 36 26 A7 4C 85 AA B D5 7F 86 27 67 12 AF 9F E6 1B A2 6E CA C5 4F B9 BF 5A C2 7 F1 5D 49 D AB 1E 28 6E F4 C 14 63 AB FD 71 FA 5E 6F 98 A4 72 E8 20 C5 24 FD D3 6 58 10 40 A2 81 F5 C8 D0 2D B5 2A 93 67 FF 44 2D B5 D0 A3 7 90 A3 57 F2 68 45 15 6B AD AC 42 EE 48 94 DB F3 A9 61 81 AD D9 D3 59 60 6B A1 89 82 DA A4 F6 DC D2 AF 60 9C 6 10 C1 E9 48 82 8 B0 55 50 4F 1E 2F 17 91 5 55 23 1F FA 89 9C 3E 5C 52 45 D2 2F 2E 4F 4D 59 9A A1 15 4D 18 20 8D 44 EA 0 B4 BA 5F 45 8C 85 B7 86 AF F4 AA AE 43 50 40 18 8E A5 9A 5A F6 53 79 F1 79 13 82 86 FC 45 AF 82 3C 6F 38 94 A 5A CF 4D D3 35 95 69 1F 68 ED E E0 CD AD 15 27 92 CA B2 4E 23 84 CE 76 3C 25 55 1D 28 17 AE 40 12 C6 53 52 85 BA 13 BB 94 63 C8 76 FD DD B1 73 6B CB D2 28 FD 7D 97 40 5F 32 B6 71 2F 1 27 BA 44 C7 64 8B 6B E3 DC 45 98 E8 FB B8 2E 9F 4F BE 22 CC 1C E5 BA 7C 26 EF 6 FC 65 BB 2E 9F 5D 2E D5 51 A6 F1 48 C1 CA C5 88 BF 9D 3C 66 1C 2D 58 C1 61 80 CB 9D 12 E5 B0 16 5C 48 E 2D 8 28 FE F A7 AE 45 B9 D0 B6 46 BA 18 AD DB BB 7B 37 6C 2A 8A CA E4 83 10 E3 63 AD 55 90 24 13 85 1B DD E0 6D B4 15 50 E9 51 63 2B B2 10 1A 2D CF 38 C4 A 5A C0 6D AF 12 A7 F9 46 B7 2E 27 A8 A3 9B 25 1B 5B 5D 69 A3 43 45 16 97 9A 16 FF 17 73 16 4 51 D4 14 4A 1E 8A BC E0 E4 A3 B9 3F A A6 4C E C1 4B 96 8 4E 33 47 A3 41 8D 48 F 6F B5 B8 44 E2 24 74 7F C6 25 23 F 1C B7 21 88 29 70 13 93 15 70 34 3F CE F7 AB 78 D8 4F 81 AA 25 F4 D BD 54 67 76 33 80 E0 77 74 CA 6 C5 3D 6B 34 F7 68 D 4E 4F 65 70 11 6B B1 D3 8E A8 43 C1 A5 18 5A 83 D7 9A A1 75 50 F8 1 5A 31 F5 3 AD 14 6D 83 6A CC 38 D1 54 2B E0 46 23 B7 69 96 FD 7A B FA 95 A0 15 4F BB 45 D5 43 4D 94 DD F0 EE 7A E1 D6 65 AC 86 6D DF E7 A6 5 1 EE E2 53 54 15 D8 B9 F8 BA 15 17 C7 B8 5E 9F F7 7A 4 81 31 AE D7 9F C2 1 B 1D D7 E9 49 59 C7 F2 5D 7F C4 60 61 31 8E 66 41 64 1C 31 58 6B B0 43 4E 8A AA E3 88 C1 DB 15 6C F4 0 65 88 E3 14 55 4F 7 10 2D 53 F4 2E 9D 9C 49 F1 D4 5 29 36 D3 B9 6B 50 66 82 C9 96 4E 43 93 73 A6 8C 63 8E 73 BA 41 D2 94 8B 95 FD 41 6A 8 15 16 B6 8E D3 5B 28 36 92 86 8B AA E3 14 D7 68 3 94 85 A2 AA 38 19 E3 4C 63 4E 40 26 5D EB 70 F0 60 9C 30 28 52 67 19 9B 90 A5 C0 0 70 6E 4A DB 41 2D 39 21 CE CB FB 1A D9 25 51 41 EB 8 34 2 A1 5B 76 22 25 96 A5 31 19 47 59 8 B9 75 E6 F2 29 E CC AF D2 A8 6E 15 5D 14 74 58 FC A5 C2 C9 E9 37 6E 23 CA 84 1C 7D 5B 11 A0 AB 2 1E DE CD 9A 5C 92 62 1B 5D 55 5D C8 67 50 D9 AE AF BB AC 2A C8 E9 A6 A9 5B 9B 38 A7 D1 35 AF E9 71 B0 B8 3D 6D CB F1 CD 92 15 9D 87 E3 A9 72 1D 53 59 1A 13 87 A3 A9 C0 F5 F4 7 68 96 32 95 3 AE 16 F0 A9 66 C9 54 1F 70 1D EE E5 6B 74 A5 9D 58 A DC 5A 9F D2 E6 A7 B1 5E 46 C0 34 A 8D 42 63 8D D7 95 89 EB 8 23 63 5D 97 B7 9A AE 1B AF 45 AE 17 20 C9 71 B5 45 3C 77 5D 7E E3 40 AB FA B9 FD DA C8 98 B8 C3 FB 52 82 E2 A EA C6 F4 32 2 47 FA C2 5 DA 37 EF 23 BD 47 55 C2 D6 1E 68 5D EE 4 D8 98 FA 83 AC 96 3 88 9B C3 42 30 D5 58 24 B1 6 D3 1C FB 34 8 F6 69 38 44 B5 1F FB 74 8 C2 73 E1 A3 95 69 AC B AC 28 AD D 57 DA EE 11 5C 93 4 AC 76 77 DE 65 3 6B 77 3F 16 FB 13 4F 7C 25 11 13 AC 6D 2C 76 9C 41 2A E5 74 39 1 46 0 2B B7 47 FF 65 9E 39 D5 A6 EC 3B 49 7F 98 D2 33 63 24 3B F 69 C5 72 9A AC 38 8A 72 C 47 22 70 CD 56 F1 1 CB 3A C0 EA 14 28 7B 3A AE 8F AD D3 D8 47 A7 A5 28 7 C8 7A 9E 41 14 4C 6E A6 D2 B8 8B 50 2E F0 D3 B2 4A 3D C8 A 44 6A 2F 79 AB 1D 64 35 B0 FA 91 6E 60 B5 1C 36 E5 34 29 1C 4E 5 9C FB 8 2 A2 BA E1 68 2A E BB 30 5 C2 6E 38 98 A 58 4D 76 E2 7C 6D 3D C8 8A E2 1C 24 25 29 6E 2C 35 25 E8 F4 4B 44 7D C1 D1 15 D9 45 1F 63 BD E0 88 28 52 91 92 A3 5E 6C C B7 A 4E 76 A1 5E 70 EC 96 B1 C0 D5 A8 D7 E1 87 43 55 E1 38 EB 75 78 68 29 C0 CA BB 2F C6 4F 3 2B C7 55 2F C6 9B 24 2C 1A 28 8F E 8C 83 6E F7 7 B0 B1 47 7 DE E1 96 48 81 15 7D 95 A7 AA 2A D0 70 2F 16 B5 E1 68 E5 71 3E 73 56 85 35 99 EA C1 55 77 C 94 89 C5 9 53 3E DD 1 CC AB 75 A3 2A E2 8 17 82 47 C6 41 55 77 D5 50 BD B D7 54 1 7E 2E 17 71 DF 6D 14 20 44 75 E3 B7 30 3 11 4F A8 1A F5 44 F0 A9 5D 68 34 98 6 92 AF F7 85 EE D0 A3 A1 BA 59 8F 66 B3 4 3 93 EB 9 9D 89 67 C2 96 84 E0 B5 51 70 9B E5 0 85 1A 71 9 C6 21 95 20 89 1E 58 E8 87 15 55 75 22 42 6F 82 5B 3D BE 26 D0 2 55 11 3A FA 37 0 D5 E6 FC 7C 72 28 DD 6D DD A3 B9 82 BF 85 4B E1 9A 2A 5D 69 A7 F 8B 81 B9 99 5C 4C 3F C3 42 87 FB A5 C3 59 10 9D 3D E1 38 1A 74 1B 83 A0 F4 2F 84 C3 A8 92 DE D3 F4 45 5B 5A 38 8C EA B6 CF A3 F0 17 9E 32 15 50 A0 A4 A D5 29 97 C7 9 A2 93 3E 19 8B CA 5A FE 89 A1 A BF 20 40 18 42 62 5C 37 C9 6C 53 41 65 8C A7 A0 2A 6 47 21 23 83 B3 F1 14 54 3B BD E1 26 AC B4 DB 5E 6F A7 1 49 20 A1 F0 12 71 BD 9D A4 54 28 8E 1B C7 4B 80 39 C0 39 38 AE 78 DD DD 89 BF CE 39 45 5C 77 77 3E 16 4 B9 88 EB EE A4 99 A8 4E 9A F3 A3 2 6B 7A C0 95 F8 68 8A 23 2 53 2A 24 5F EA BA 3E B2 AD 3 AB D9 FD 55 5C CF D8 F AA 9E CE 53 91 C3 98 A7 A3 10 6D 7 54 C5 D7 E7 E9 28 9C 84 6E 91 5E 5 D6 98 EE 28 5C EE C6 AD 9D EB 35 DB A1 AB B0 91 8A 22 14 27 B0 4E 44 15 81 38 7B 31 ED 38 F4 95 D1 51 BB F9 5A 1C 54 F5 1F 23 4C 8F EC 3A D3 43 E5 D1 D4 A0 5A 0 A4 5B AE 14 FF 13 4D 8B 26 A7 20 8F C8 8A 36 7E E5 3 B3 1C 59 D3 6D 92 A5 1C 28 A6 A1 70 10 54 5 81 67 E0 6C 29 80 75 2D C4 B0 3D 5C E6 9F 6E B9 A6 BA F4 ED 91 DD A 40 D3 21 3A 21 52 C0 E6 86 2C 3B E0 A 4B 1 4 35 B4 3F ED AB 33 53 EA DE A0 2A 70 ED 38 A 5D B5 C8 D0 2 D3 3E 74 B5 BB 80 45 57 6A 38 8C A 55 D1 31 40 55 2D F5 84 51 94 E2 6A BE 5A E9 C7 BE 61 D4 5C A3 2B 99 4E F1 56 54 A9 D7 B 1F 14 95 63 5F F9 94 1A 87 6E 30 EB D9 57 1E E8 CE BE 16 5E B0 AF 40 10 46 6 A3 D9 BE 64 80 AE A0 5C F0 BD 7D 93 A5 70 13 B6 E3 DB BE C9 12 14 69 50 E7 4E F3 55 81 39 39 BA 42 7B 9A 47 5 96 89 CE 1F 1A 8 6B 9A 47 5 DE 54 7 CB C3 57 E7 A9 A8 EE 6C E1 35 2B F5 9A B9 3F 52 0 90 49 7F DD 3C 49 EB 82 6A D1 F8 22 A0 9D 39 8E 12 E0 50 4C D1 95 4E 2A 2B 1 61 A2 21 CF E6 69 94 80 A3 DF 4F C6 A1 9C 2A CE 60 58 85 3F 4C 97 53 CB F0 C0 93 3F D4 A1 DE 88 C8 1A 5E 1D 2D 2F DC B FA F6 D1 7F 6 85 8D 4 3 77 37 2B A5 6C A6 90 8 B8 88 AC EE 7B AA 74 2A 50 10 13 F4 56 EA 82 74 B3 66 59 4C 7A C3 ED 31 1D 45 7D 96 69 25 A0 B9 97 8E E C0 F9 FC E5 8B C1 78 90 2C 89 FF 58 9 78 BA AE BA C6 A9 6E C C7 97 C9 F2 35 1D D7 53 75 F AB 65 D7 41 23 7E 35 AC 3A 9F 42 18 4E F8 92 B9 AA FF D8 45 68 93 66 3D 7F A9 33 69 33 81 18 EB CC 1C 46 B5 AC ED 78 9E 3 53 3C 4A 80 95 60 1A D5 A7 83 28 4A 80 5 E4 BD 31 AD 87 AC BA C5 2C 33 A7 A3 B2 2F 93 F5 AA C0 9B 66 BB C8 B8 C1 80 A2 DB 9D FE F 51 9B 1B 7B 53 35 0 0 \ No newline at end of file diff --git a/tests/corrupt-gz-file.bin b/tests/corrupt-gz-file.bin deleted file mode 100644 index 159333b032751969263eeb152e7e94782ab2cd39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7128 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 LalHo10|5UIqgUPt diff --git a/tests/gunzip.rs b/tests/gunzip.rs index c3820328a..512ed82ac 100644 --- a/tests/gunzip.rs +++ b/tests/gunzip.rs @@ -4,9 +4,37 @@ use flate2::read::GzDecoder; use flate2::read::MultiGzDecoder; use std::fs::File; use std::io::prelude::*; -use std::io::{self, BufReader}; +use std::io::{self, BufReader, BufWriter}; use std::path::Path; +fn hex_to_bin(hex_reader: impl Read, bin_writer: impl Write) { + let mut bin_writer = BufWriter::new(bin_writer); + let hex_reader = BufReader::new(hex_reader); + + let mut hex = String::new(); + let mut bytes = hex_reader.bytes(); + loop { + let d = if let Some(b) = bytes.next() { + String::from_utf8(vec![b.unwrap()]).unwrap() + } else { + "".into() + }; + if !hex.is_empty() && (&d == " " || d.is_empty()) { + bin_writer + .write_all(&[u8::from_str_radix(&hex, 16).unwrap()]) + .unwrap(); + hex.clear(); + } else if &d != " " { + hex.push_str(&d); + } + if hex.is_empty() && d.is_empty() { + break; + } + } + + bin_writer.flush().unwrap(); +} + // test extraction of a gzipped file #[test] fn test_extract_success() { @@ -33,7 +61,13 @@ fn test_extract_success_partial_multi() { // test extraction fails on a corrupt file #[test] fn test_extract_failure() { - let result = extract_file(Path::new("tests/corrupt-gz-file.bin")); + let mut tmp_bin = std::env::temp_dir(); + tmp_bin.set_file_name("corrupt-file.gz"); + hex_to_bin( + File::open("tests/corrupt-file.gz.hex").unwrap(), + File::create(&tmp_bin).unwrap(), + ); + let result = extract_file(Path::new(&tmp_bin)); assert_eq!(result.err().unwrap().kind(), io::ErrorKind::InvalidInput); }