mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-19 08:25:21 +01:00
Bump bundled libarchive version to 3.5.2
- Update bunlded libarchive version used on Windows/Mac - Enable requested zstd support while we are at it. Closes #211
This commit is contained in:
parent
03e083b4f3
commit
67618a2eac
1869 changed files with 166685 additions and 9489 deletions
BIN
dependencies/libarchive-3.5.2/contrib/oss-fuzz/corpus.zip
vendored
Normal file
BIN
dependencies/libarchive-3.5.2/contrib/oss-fuzz/corpus.zip
vendored
Normal file
Binary file not shown.
49
dependencies/libarchive-3.5.2/contrib/oss-fuzz/libarchive_fuzzer.cc
vendored
Normal file
49
dependencies/libarchive-3.5.2/contrib/oss-fuzz/libarchive_fuzzer.cc
vendored
Normal file
|
@ -0,0 +1,49 @@
|
|||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <vector>
|
||||
|
||||
#include "archive.h"
|
||||
|
||||
struct Buffer {
|
||||
const uint8_t *buf;
|
||||
size_t len;
|
||||
};
|
||||
|
||||
ssize_t reader_callback(struct archive *a, void *client_data,
|
||||
const void **block) {
|
||||
Buffer *buffer = reinterpret_cast<Buffer *>(client_data);
|
||||
*block = buffer->buf;
|
||||
ssize_t len = buffer->len;
|
||||
buffer->len = 0;
|
||||
return len;
|
||||
}
|
||||
|
||||
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len) {
|
||||
int ret;
|
||||
ssize_t r;
|
||||
struct archive *a = archive_read_new();
|
||||
|
||||
archive_read_support_filter_all(a);
|
||||
archive_read_support_format_all(a);
|
||||
|
||||
Buffer buffer = {buf, len};
|
||||
archive_read_open(a, &buffer, NULL, reader_callback, NULL);
|
||||
|
||||
std::vector<uint8_t> data_buffer(getpagesize(), 0);
|
||||
struct archive_entry *entry;
|
||||
while(1) {
|
||||
ret = archive_read_next_header(a, &entry);
|
||||
if (ret == ARCHIVE_EOF || ret == ARCHIVE_FATAL)
|
||||
break;
|
||||
if (ret == ARCHIVE_RETRY)
|
||||
continue;
|
||||
while ((r = archive_read_data(a, data_buffer.data(),
|
||||
data_buffer.size())) > 0)
|
||||
;
|
||||
if (r == ARCHIVE_FATAL)
|
||||
break;
|
||||
}
|
||||
|
||||
archive_read_free(a);
|
||||
return 0;
|
||||
}
|
16
dependencies/libarchive-3.5.2/contrib/oss-fuzz/oss-fuzz-build.sh
vendored
Executable file
16
dependencies/libarchive-3.5.2/contrib/oss-fuzz/oss-fuzz-build.sh
vendored
Executable file
|
@ -0,0 +1,16 @@
|
|||
# build the project
|
||||
./build/autogen.sh
|
||||
./configure
|
||||
make -j$(nproc) all
|
||||
|
||||
# build seed
|
||||
cp $SRC/libarchive/contrib/oss-fuzz/corpus.zip\
|
||||
$OUT/libarchive_fuzzer_seed_corpus.zip
|
||||
|
||||
# build fuzzer(s)
|
||||
$CXX $CXXFLAGS -Ilibarchive \
|
||||
$SRC/libarchive/contrib/oss-fuzz/libarchive_fuzzer.cc \
|
||||
-o $OUT/libarchive_fuzzer $LIB_FUZZING_ENGINE \
|
||||
.libs/libarchive.a -Wl,-Bstatic -lbz2 -llzo2 \
|
||||
-lxml2 -llzma -lz -lcrypto -llz4 -licuuc \
|
||||
-licudata -Wl,-Bdynamic
|
Loading…
Add table
Add a link
Reference in a new issue