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 2d4580d16ac757606591dbc6ed6475dfec85aea0 Author: Marcin Mielzynski <[email protected]> Date: Mon Dec 14 22:47:16 2015 +0100 fix IOOBes for backref at level and multiplex definitions --- src/org/joni/ByteCodeMachine.java | 9 ++++++--- test/org/joni/test/TestU8.java | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/org/joni/ByteCodeMachine.java b/src/org/joni/ByteCodeMachine.java index 262ea71..5cf643e 100644 --- a/src/org/joni/ByteCodeMachine.java +++ b/src/org/joni/ByteCodeMachine.java @@ -1352,8 +1352,9 @@ class ByteCodeMachine extends StackMachine { s = value; int len; - // if (sprev < bytes.length) - while (sprev + (len = enc.length(bytes, sprev, end)) < s) sprev += len; + if (sprev < range) { + while (sprev + (len = enc.length(bytes, sprev, end)) < s) sprev += len; + } ip += tlen - i - 1; // * SIZE_MEMNUM (1) break; /* success */ @@ -1425,7 +1426,9 @@ class ByteCodeMachine extends StackMachine { sprev = s; if (backrefMatchAtNestedLevel(ic != 0, regex.caseFoldFlag, level, tlen, ip)) { // (s) and (end) implicit int len; - while (sprev + (len = enc.length(bytes, sprev, end)) < s) sprev += len; + if (sprev < range) { + while (sprev + (len = enc.length(bytes, sprev, end)) < s) sprev += len; + } ip += tlen; // * SIZE_MEMNUM } else { {opFail(); return;} diff --git a/test/org/joni/test/TestU8.java b/test/org/joni/test/TestU8.java index 24f1dde..5881db4 100644 --- a/test/org/joni/test/TestU8.java +++ b/test/org/joni/test/TestU8.java @@ -93,6 +93,8 @@ public class TestU8 extends Test { x2s("foo\\b", "foo", 0, 3); x2s("(x?)x*\\1", "x", 0, 1, Option.IGNORECASE); + x2s("(x?)x*\\k<1+0>", "x", 0, 1, Option.IGNORECASE); + x2s("(?<n>x?)(?<n>x?)\\k<n>", "x", 0, 1, Option.IGNORECASE); } public static void main(String[] args) throws Throwable { -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jruby-joni.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

