RgxGen
RgxGen copied to clipboard
Heap overflow when parsing regex
Describe the bug Heap overflow when parsing regex
To Reproduce Steps to reproduce the behavior:
- With regex pattern :
hex:
28dba5292a303a2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2f2aef0100002bfd2eraw:(ۥ)*0:+++++++++++++++++++/*�byte[] :[40, -37, -91, 41, 42, 48, 58, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 47, 42, -17, 1, 0, 0, 43, -3, 46] - Use code/API
RgxGen rgxGen = new RgxGen(new String(bytes));
String s = rgxGen.generate();
- See error
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
at java.lang.StringBuilder.append(StringBuilder.java:141)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:59)
at com.github.curiousoddman.rgxgen.nodes.FinalSymbol.visit(FinalSymbol.java:31)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
at com.github.curiousoddman.rgxgen.visitors.GenerationVisitor.visit(GenerationVisitor.java:71)
at com.github.curiousoddman.rgxgen.nodes.Repeat.visit(Repeat.java:43)
Expected behavior A clear and concise description of what you expected to happen.
Screenshots If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):
- OS: Linux 6.2.1-arch1-1
- JDK/JRE version 1.8
- RgxGen Version :1.4
Additional context Provided to improve code quality, The bug was found during the test, not in the production application
Hello! May I ask you what are you trying to generate?
I am especially interested in +++++++++++++++++++ ?
Why would you need that?
Or is that an example of incorrect regex pattern?
This is an example of a wrong regex.