]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Use LZ4_decompress_safe_usingDict for reading
authordosomder <dosomder@users.noreply.github.com>
Sat, 12 Mar 2016 17:52:33 +0000 (18:52 +0100)
committerdosomder <dosomder@users.noreply.github.com>
Sat, 12 Mar 2016 18:42:33 +0000 (19:42 +0100)
This function was added on May 4, 2014

https://github.com/Cyan4973/lz4/blob/7bcb3b2e9f36ad6adef2cb43858a8f3adb39c527/lz4.h

The old function LZ4_decompress_safe_withPrefix64k is deprecated since
April 11, 2015

https://github.com/Cyan4973/lz4/blob/973e385fa332485f4617cf16406a8c8ef631a555/lib/lz4.h

libarchive/archive_read_support_filter_lz4.c

index db62cb355ec9f99fbe574f9389033a7e984ffc05..e877917b940b697c00f5ebd5593314d3a55942fa 100644 (file)
@@ -580,10 +580,19 @@ lz4_filter_read_data_block(struct archive_read_filter *self, const void **p)
                                    prefix64k);
                        }
                }
+#if LZ4_VERSION_MAJOR >= 1 && LZ4_VERSION_MINOR >= 7
+               uncompressed_size = LZ4_decompress_safe_usingDict(
+                   read_buf + 4,
+                   state->out_block + prefix64k, (int)compressed_size,
+                   state->flags.block_maximum_size,
+                   state->out_block,
+                   prefix64k);
+#else
                uncompressed_size = LZ4_decompress_safe_withPrefix64k(
                    read_buf + 4,
                    state->out_block + prefix64k, (int)compressed_size,
                    state->flags.block_maximum_size);
+#endif
        }
 
        /* Check if an error happend in decompression process. */