Alan,

After staring those simple, 11 lines of change for minutes, I believe we should simply
go back with the original approach at

http://cr.openjdk.java.net/~sherman/6858865/webrev.00

The change in
http://cr.openjdk.java.net/~sherman/6858865/webrev.00

obviously is problematic, especially in case like in_len == 0 but out_len != 0 (no more, or no more new input, but with a valid output buffer), it's definitely possible the inflater/deflater might have more bites to (and should) output in this scenario, it's a
bug to return 0 here.

Sure it's possible to go further like

if (in_len == 0)
    return 0;
....

if (len == 0)
    ...

But given the purpose of this fix is to solve that particular "regression" (which actually does not cause any regression for "mainstream" platforms), I prefer not take the risk of causing another real regression/behavior change here, especially we got burned
couple times here in the past when tried to do better.

Agree?

-Sherman



On 11/19/2010 02:03 PM, Xueming Shen wrote:
On 11/19/2010 01:51 PM, Alan Bateman wrote:
Xueming Shen wrote:
:
Why do you want to feed the zlib with a null buffer? :-)
So are you saying that if the length is 0 that it still looks at the buffer? If so, then I'm okay with the last webrev.


zlib does buffer null check before anything else, just like we do null check/throw NPE first then
check the offset and length.

-Sherman

Reply via email to