[ https://issues.apache.org/jira/browse/WW-4383?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lukasz Lenart updated WW-4383: ------------------------------ Description: An infinite loop occurs in FastByteArrayOutputStream.java. The conditions which an infinite loop generates are as follows. - The character code of input data is UTF-8. - The length of input data is longer than 16 KB. - There is a character of a surrogate pair after 16 KB of input data. - Example of input data: The input data to reproduce repeats 3 bytes of character 5462 times, and the character of a surrogate pair appears behind that. - Cause Is clean of the out buffer necessary for decodeAndWritw method after the output in an out buffer? {code:java} private static CoderResult decodeAndWrite(Writer writer, ByteBuffer in, CharBuffer out, CharsetDecoder decoder, boolean endOfInput) throws IOException { CoderResult result = decoder.decode(in, out, endOfInput); // To begin of decoded data out.flip(); // Output writer.write(out.toString()); return result; } {code} was: An infinite loop occurs in FastByteArrayOutputStream.java. The conditions which an infinite loop generates are as follows. ・The character code of input data is UTF-8. ・The length of input data is longer than 16 KB. ・There is a character of a surrogate pair after 16 KB of input data. ・Example of input data: The input data to reproduce repeats 3 bytes of character 5462 times, and the character of a surrogate pair appears behind that. ・Cause Is clean of the out buffer necessary for decodeAndWritw method after the output in an out buffer? private static CoderResult decodeAndWrite(Writer writer, ByteBuffer in, CharBuffer out, CharsetDecoder decoder, boolean endOfInput) throws IOException { CoderResult result = decoder.decode(in, out, endOfInput); // To begin of decoded data out.flip(); // Output writer.write(out.toString()); return result; } > An infinite loop occurs in FastByteArrayOutputStream.java. > ----------------------------------------------------------- > > Key: WW-4383 > URL: https://issues.apache.org/jira/browse/WW-4383 > Project: Struts 2 > Issue Type: Bug > Components: Core Actions > Affects Versions: 2.3.16.3 > Reporter: Suzuki Yoshifumi > Priority: Minor > Original Estimate: 672h > Remaining Estimate: 672h > > An infinite loop occurs in FastByteArrayOutputStream.java. > The conditions which an infinite loop generates are as follows. > - The character code of input data is UTF-8. > - The length of input data is longer than 16 KB. > - There is a character of a surrogate pair after 16 KB of input data. > - Example of input data: > The input data to reproduce repeats 3 bytes of character 5462 times, > and the character of a surrogate pair appears behind that. > - Cause > Is clean of the out buffer necessary for decodeAndWritw method after the > output in an out buffer? > {code:java} > private static CoderResult decodeAndWrite(Writer writer, ByteBuffer in, > CharBuffer out, CharsetDecoder decoder, boolean endOfInput) throws > IOException { > CoderResult result = decoder.decode(in, out, endOfInput); > // To begin of decoded data > out.flip(); > // Output > writer.write(out.toString()); > return result; > } > {code} -- This message was sent by Atlassian JIRA (v6.2#6252)