Andrii Hudz created COMPRESS-628: ------------------------------------ Summary: OutOfMemoryError on pack200 NewAttributeBands.readNextUnionCase Key: COMPRESS-628 URL: https://issues.apache.org/jira/browse/COMPRESS-628 Project: Commons Compress Issue Type: Bug Components: Archivers Affects Versions: 1.21 Environment: ubuntu18, java-11-openjdk-amd64 Reporter: Andrii Hudz
Similar to https://issues.apache.org/jira/browse/COMPRESS-626 pack200.NewAttributeBands.readNextUnionCase can result in an infinite loop that finally leads to an out of memory error. {code:java} import org.apache.commons.compress.harmony.pack200.*; public class ApacheCompress_1_22_90a4d8b3_OutOfMemory { public static void main(String[] args) throws Exception { CPUTF8 name = new CPUTF8(""); CPUTF8 layout = new CPUTF8("Re\\T"); new NewAttributeBands(1, null, null, new AttributeDefinitionBands.AttributeDefinition(35, AttributeDefinitionBands.CONTEXT_CLASS, name, layout) ); } } {code} exception on 1.22 snapshot commit(90a4d8b3) {code:java} Exception in thread "main" java.lang.OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects {code} exception on 1.21 {code:java} java.lang.OutOfMemoryError: Java heap space at java.base/java.util.Arrays.copyOf(Arrays.java:3745) at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:172) at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:748) at java.base/java.lang.StringBuffer.append(StringBuffer.java:429) at org.apache.commons.compress.harmony.pack200.NewAttributeBands.getStreamUpToMatchingBracket(NewAttributeBands.java:822) at org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextUnionCase(NewAttributeBands.java:304) at org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextLayoutElement(NewAttributeBands.java:237) at org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextAttributeElement(NewAttributeBands.java:184) at org.apache.commons.compress.harmony.pack200.NewAttributeBands.parseLayout(NewAttributeBands.java:95) at org.apache.commons.compress.harmony.pack200.NewAttributeBands.<init>(NewAttributeBands.java:53) at ApacheCompress_1_22_90a4d8b3_OutOfMemory.main(ApacheCompress_1_22_90a4d8b3_OutOfMemory.java:7) {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)