RgxGen icon indicating copy to clipboard operation
RgxGen copied to clipboard

Heap overflow when parsing regex

Open freedom1b2830 opened this issue 2 years ago • 2 comments

Describe the bug Heap overflow when parsing regex

To Reproduce Steps to reproduce the behavior:

  1. With regex pattern : hex:28dba5292a303a2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2f2aef0100002bfd2e raw:(ۥ)*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]
  2. Use code/API
RgxGen rgxGen = new RgxGen(new String(bytes));
String s = rgxGen.generate();
  1. 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

freedom1b2830 avatar Mar 04 '23 05:03 freedom1b2830

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?

curious-odd-man avatar Mar 04 '23 11:03 curious-odd-man

This is an example of a wrong regex.

freedom1b2830 avatar Mar 04 '23 16:03 freedom1b2830