Я пишу код для распаковки закодированного буфера LZ4. Сбой операции при вызове LZ4_decompress_safe
. Ошибка: «ERROR_contentChecksumFlag_invalid». Во входных данных нет ничего плохого, потому что я записал в файл тот же буфер и использовал unlz4 для его правильного декодирования. Используемая мной версия библиотеки lz4-dev: 1.7.1 (Xenial Ubuntu Pkg).
Библиотека lz4, которую использует unlz4: 1.7.1. Я в недоумении, в чем проблема.
Код, который я использую:
std::ofstream dbgfile("~/lz4_dbg", std::ios::out | std::ios::binary);
dbgfile.write(entry_buffer, entry_size);
dbgfile.close();
char* lz4_buffer = (char*)calloc(1, entry_size*4);
uint64_t bytes_decompressed = LZ4_decompress_safe(entry_buffer, lz4_buffer, entry_size, entry_size * 4);
std::string err = LZ4F_getErrorName(bytes_decompressed);