У меня есть пример Gzip Compressed Data | 100-length RNG Pad
. Удивительно, что zlib
GZip-файл API способен обнаруживать EOF в начале пэда n-длины и не считать его. Попробуйте онлайн
Я попытался посмотреть на заголовок и исходный код , и это были мои лучшие догадки:
- На основе исходного кода - Обнаруживает повреждение потока из-за обнаружения недопустимой последовательности байтов - следовательно,
gzread
возвращает -1.
- На основе заголовка файла - Обнаруживает CRC32 в конце в течение последнего
read
и проверяет соответствующий размер файла после него. Если все совпадает, возвращается EOF.
Может ли кто-нибудь подтвердить мое понимание того, что (1) действительно происходит. Если это так, я предполагаю, что пример, который я опробовал, может быть неопределенным поведением, основанным на случайной последовательности байтов.