RFR 8201867: Kerberos keytabs with holes in certain places are parsed incorrectly

Weijun Wang weijun.wang at oracle.com
Thu May 17 03:00:34 UTC 2018



> On May 17, 2018, at 6:43 AM, Valerie Peng <valerie.peng at oracle.com> wrote:
> 
> 
> Looking at the BufferedInputStream impl, it looks like its skip(...) method should trigger the internal array to be refilled when the internal bytes are used up. Maybe something like below would also work?

Looks so. I'll use your code.

Thanks
Max

>     while (n > 0) {
> 	int n2 = skip(n);
> 	if (n2 == 0) {
> 
> 	    throw new IOException("Premature EOF reached");
> 	} else {
> 	    n -= n2;
> 	}
>     }
> 
> Valerie
> 
> 
> On 4/24/2018 7:42 AM, Weijun Wang wrote:
>> Please take a review at
>> 
>>   
>> http://cr.openjdk.java.net/~weijun/8201867/webrev.00/
>> 
>> 
>> When the hole in keytab is right on the 8192 buffer boundary, skip(n) does not return n.
>> 
>> I are not sure if I can do something like "while (i < n) i += skip(n)" because skip(n) can return zero and it does not understand EOF. Therefore I readNBytes(n) and discard the result. If you have a better solution, I'll be happy to know.
>> 
>> Thanks
>> Max
>> 
>> 
> 




More information about the security-dev mailing list