On Mon, 15 Aug 2022 20:23:16 GMT, Volker Simonis <simo...@openjdk.org> wrote:
>> The problem is that after >> [JDK-8281962](https://bugs.openjdk.org/browse/JDK-8281962) we call `fill()` >> unconditionally (and before calling `Inflater::inflate()`) in >> `InflaterInputStream::read()` if `Inflater::needsInput()` is true. This >> misses the case where the native inflater has consumed all its input (i.e. >> `Inflater::needsInput()` returns true) but hasn't managed to write all the >> inflated data into the output buffer (e.g. because it was to small). In rare >> cases, there might be now more input available (i.e. calling >> `InflaterInputStream::fill()` will throw an `EOFException`) but we still >> have to call `Inflater::inflate()` to consume the buffered output from the >> underlying native inflater until inflation stops. >> >> The documentation of the `inflate()` method in `zlib.h` mentions this >> explicitely: >> >>> "If `inflate()` returns `Z_OK` and with zero `avail_out`, it must be called >>> again after making room in the output buffer because there might be more >>> output pending." > > Volker Simonis has updated the pull request incrementally with one additional > commit since the last revision: > > Minor changes regarding indentation, naming and spelling I've updated the link in the description (sorry, copy-paste error) and opened a [JBS issue for `fill()`](https://bugs.openjdk.org/browse/JDK-8292427). What else is needed to push this to HEAD? And what do we want to do about JDK 19? Have you read my [last comment](https://bugs.openjdk.org/browse/JDK-8292327?focusedCommentId=14517812&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14517812) in the JBS issue`? ------------- PR: https://git.openjdk.org/jdk/pull/9881