From 2588054b15a41477d09467b65291263380658bc7 Mon Sep 17 00:00:00 2001 From: michaelm Date: Tue, 22 Feb 2011 14:44:43 +0000 Subject: [PATCH] 6702400: ChunkedInputStream expecting -1 from int read, but int->char comparision is wrong Reviewed-by: chegar --- .../sun/net/httpserver/ChunkedInputStream.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/share/classes/sun/net/httpserver/ChunkedInputStream.java b/src/share/classes/sun/net/httpserver/ChunkedInputStream.java index 97b8242a9..95e010189 100644 --- a/src/share/classes/sun/net/httpserver/ChunkedInputStream.java +++ b/src/share/classes/sun/net/httpserver/ChunkedInputStream.java @@ -69,32 +69,33 @@ class ChunkedInputStream extends LeftOverInputStream { */ private int readChunkHeader () throws IOException { boolean gotCR = false; - char c; + int c; char[] len_arr = new char [16]; int len_size = 0; boolean end_of_len = false; - while ((c=(char)in.read())!= -1) { + while ((c=in.read())!= -1) { + char ch = (char) c; if (len_size == len_arr.length -1) { throw new IOException ("invalid chunk header"); } if (gotCR) { - if (c == LF) { + if (ch == LF) { int l = numeric (len_arr, len_size); return l; } else { gotCR = false; } if (!end_of_len) { - len_arr[len_size++] = c; + len_arr[len_size++] = ch; } } else { - if (c == CR) { + if (ch == CR) { gotCR = true; - } else if (c == ';') { + } else if (ch == ';') { end_of_len = true; } else if (!end_of_len) { - len_arr[len_size++] = c; + len_arr[len_size++] = ch; } } } -- GitLab