[jruby-joni] 69/194: too many capture groups check

Hideki Yamane henrich at moszumanska.debian.org
Thu Feb 1 12:04:28 UTC 2018


This is an automated email from the git hooks/post-receive script.

henrich pushed a commit to branch debian/sid
in repository jruby-joni.

commit a63d70883cc33872163b46dd84f81a8462ce3ae7
Author: Marcin Mielzynski <lopx at gazeta.pl>
Date:   Sat Dec 30 18:30:22 2017 +0100

    too many capture groups check
---
 src/org/joni/Config.java                  | 1 +
 src/org/joni/ScanEnvironment.java         | 1 +
 src/org/joni/exception/ErrorMessages.java | 1 +
 3 files changed, 3 insertions(+)

diff --git a/src/org/joni/Config.java b/src/org/joni/Config.java
index d570064..97d594e 100644
--- a/src/org/joni/Config.java
+++ b/src/org/joni/Config.java
@@ -47,6 +47,7 @@ public interface Config extends org.jcodings.Config {
 
     final int NREGION                   = 10;
     final int MAX_BACKREF_NUM           = 1000;
+    final int MAX_CAPTURE_GROUP_NUM     = 32767;
     final int MAX_REPEAT_NUM            = 100000;
     final int MAX_MULTI_BYTE_RANGES_NUM = 10000;
 
diff --git a/src/org/joni/ScanEnvironment.java b/src/org/joni/ScanEnvironment.java
index 9731881..023495d 100644
--- a/src/org/joni/ScanEnvironment.java
+++ b/src/org/joni/ScanEnvironment.java
@@ -86,6 +86,7 @@ public final class ScanEnvironment {
     }
 
     public int addMemEntry() {
+        if (numMem >= Config.MAX_CAPTURE_GROUP_NUM) throw new InternalException(ErrorMessages.ERR_TOO_MANY_CAPTURE_GROUPS);
         if (numMem++ == 0) {
             memNodes = new Node[Config.SCANENV_MEMNODES_SIZE];
         } else if (numMem >= memNodes.length) {
diff --git a/src/org/joni/exception/ErrorMessages.java b/src/org/joni/exception/ErrorMessages.java
index 008ea0b..8605c5c 100644
--- a/src/org/joni/exception/ErrorMessages.java
+++ b/src/org/joni/exception/ErrorMessages.java
@@ -35,6 +35,7 @@ public interface ErrorMessages extends org.jcodings.exception.ErrorMessages {
     final String ERR_UNEXPECTED_BYTECODE = "unexpected bytecode (bug)";
     final String ERR_DEFAULT_ENCODING_IS_NOT_SETTED = "default multibyte-encoding is not setted";
     final String ERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR = "can't convert to wide-char on specified multibyte-encoding";
+    final String ERR_TOO_MANY_CAPTURE_GROUPS = "too many capture groups are specified";
 
     /* general error */
     final String ERR_INVALID_ARGUMENT = "invalid argument";

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jruby-joni.git



More information about the pkg-java-commits mailing list