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

test/jdk/java/util/zip/InflaterInputStream/UnexpectedEndOfZlibStream.java line 
48:

> 46:         };
> 47:         String deflated = "@ObjectiveCName(\"DYNSApi\")\npackage 
> com.google.apps.dynamite.v1.shared.api;\n\n"+
> 48:             "import com.google.j2objc.annotations.ObjectiveCName;\n\n";

Can you replace the deflated text with something that doesn't look like it came 
from a google repository?

-------------

PR: https://git.openjdk.org/jdk/pull/9881

Reply via email to