Mercurial > hg > openjdk > jdk9 > jdk
changeset 13702:6e9ecae50b4e jdk-9+106
8134424: BlockDataInputStream.readUTFBody: size local StringBuffer with the given length
Reviewed-by: rriggs, shade
author | chegar |
---|---|
date | Mon, 15 Feb 2016 14:25:21 +0000 |
parents | 683b25e90142 |
children | 01724c10f8ef 689c1a6f8768 |
files | src/java.base/share/classes/java/io/ObjectInputStream.java |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/java.base/share/classes/java/io/ObjectInputStream.java Mon Feb 15 10:14:39 2016 +0000 +++ b/src/java.base/share/classes/java/io/ObjectInputStream.java Mon Feb 15 14:25:21 2016 +0000 @@ -3144,7 +3144,15 @@ * utflen bytes. */ private String readUTFBody(long utflen) throws IOException { - StringBuilder sbuf = new StringBuilder(); + StringBuilder sbuf; + if (utflen > 0 && utflen < Integer.MAX_VALUE) { + // a reasonable initial capacity based on the UTF length + int initialCapacity = Math.min((int)utflen, 0xFFFF); + sbuf = new StringBuilder(initialCapacity); + } else { + sbuf = new StringBuilder(); + } + if (!blkmode) { end = pos = 0; }