zlib Z_DATA_ERROR раздувать вопрос - PullRequest
0 голосов
/ 03 июля 2018

У меня есть проблема, которая, вероятно, проста, но я не могу обойти ее. Я дефлятирую с помощью скрипта Python (импорт zlib) и делаю инфляцию на встроенной платформе, используя zlib версии 1.2.11, 15 января 2017 года.

В целях тестирования я создал постоянную таблицу в ПЗУ, которая представляет собой дефлированные данные, созданные скриптом. Структура z_stream называется test_stream.

Если я укажу test_stream.next_in на постоянную таблицу / буфер в ПЗУ, инфляция будет работать нормально, данные будут восстановлены, все в порядке.

Но если я скопирую из ПЗУ в буфер ОЗУ и передам этот буфер ОЗУ в test_stream.next_in, inflateInit (& test_stream) вернет Z_DATA_ERROR (-3), а test_stream.msg содержит: "- отсутствует конец блока "или" установлена ​​недопустимая длина кода ".

Очевидно, я проверил, что буфер ОЗУ правильно скопирован из ПЗУ. Я что-то здесь упускаю, буфер оперативной памяти нуждается в выравнивании или что-то еще? Я знаю, это кажется странным, но любая идея будет оценена.

1 Ответ

0 голосов
/ 03 июля 2018

Нет, требований по выравниванию нет. Вы должны указывать неправильный адрес или неправильно копировать сжатые данные.

...