On Mon, 28 Mar 2022 15:01:30 GMT, Jaikiran Pai <j...@openjdk.org> wrote:

>> Volker Simonis has refreshed the contents of this pull request, and previous 
>> commits have been removed. The incremental views will show differences 
>> compared to the previous content of the PR. The pull request contains one 
>> new commit since the last revision:
>> 
>>   8282648: Problems due to conflicting specification of 
>> Inflater::inflate(..) and InflaterInputStream::read(..)
>
> src/java.base/share/classes/java/util/zip/InflaterInputStream.java line 133:
> 
>> 131:      * Unlike the {@link InputStream#read(byte[],int,int) overridden 
>> method}
>> 132:      * of {@code InputStream}, this method might write more bytes than 
>> the returned
>> 133:      * number of inflated bytes into the buffer {@code b}.
> 
> Hello Volker, I think this comment should be a bit more clear and state what 
> exactly it means by writing more bytes than the returned value. Specifically, 
> I think it should clearly state that even though it might write additional 
> data, it will however not write/change data starting and beyond `off + len` 
> index in the passed array.

I think this require a bit of word smithing. If the return value is 'n' then it 
should make it clear that the values in elements b[off + n] to b[off + len - 1] 
are undefined, their values may or may have been changed by the inflate/read 
operation. For completeness, the expectation for when inflate fails should be 
specified too, the contents of b[off] to b[off + len - 1] will be undefined.

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

PR: https://git.openjdk.java.net/jdk/pull/7986

Reply via email to