[security-dev 00949]: Re: code review request 6853793: OutOfMemoryError in sun.security.provider.certpath.OCSPChecker.check
Weijun Wang
Weijun.Wang at Sun.COM
Thu Jul 2 10:11:34 UTC 2009
Sorry, my code is not correct. It might read more than expected when
contentLength != -1
while (total < contentLength) {
if (total >= resp.len) {
resp = Arrays.copyOf(resp, resp.len*2);
}
count = in.read(resp, total, resp.len-total)
if (count < 0) break;
total += count;
}
Weijun Wang wrote:
> I understand what the code means. It either reads contentLength bytes of
> data, or, if it's -1, reads until EOF.
>
> However, I guess it would look simpler if you use only one while(read):
>
> if (contentLength == -1) {
> resp = new byte[contentLength];
> } else {
> resp = new byte[2048];
> contentLength = Integer.MAX_VALUE;
> }
> while (total < contentLength) {
> count = in.read(resp, total, resp.len-total)
> if (count < 0) break;
> total += count;
> if (total almost exceeds resp len) {
> resp = Arrays.copyOf(resp, resp.len*2);
> }
> }
>
> Also, I guess the response should be truncated back to total after the
> reading is complete.
>
> response = Arrays.copyOf(response, total);
>
> Thanks
> Max
>
> Xuelei Fan wrote:
>> Hi,
>>
>> bug desc: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6853793
>> webrv: http://cr.openjdk.java.net/~xuelei/6853793/webrev/
>>
>> no new regression test, trivial changes, hard to write a new test.
>>
>> Thanks,
>> Xuelei
More information about the security-dev
mailing list