From 6e436a7cf59a82b0cefbfc744bafdcc0dbd57864 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Thu, 19 Jul 2018 18:40:16 +0200 Subject: [PATCH] Fix AIOOBE in CommandUtils.inspectArgs/completeArgs --- .../java/de/prob2/jupyter/commands/CommandUtils.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/prob2/jupyter/commands/CommandUtils.java b/src/main/java/de/prob2/jupyter/commands/CommandUtils.java index fce3cd2..ecc1e46 100644 --- a/src/main/java/de/prob2/jupyter/commands/CommandUtils.java +++ b/src/main/java/de/prob2/jupyter/commands/CommandUtils.java @@ -238,12 +238,15 @@ public final class CommandUtils { int argStart = 0; int argEnd = argString.length(); int i = 0; - while (argSplitMatcher.find() && i < inspectors.length) { + while (argSplitMatcher.find()) { if (argSplitMatcher.end() > at) { argEnd = argSplitMatcher.start(); break; } argStart = argSplitMatcher.end(); + if (i >= inspectors.length-1) { + break; + } i++; } return inspectors[i].inspect(argString.substring(argStart, argEnd), at - argStart); @@ -254,12 +257,15 @@ public final class CommandUtils { int argStart = 0; int argEnd = argString.length(); int i = 0; - while (argSplitMatcher.find() && i < completers.length) { + while (argSplitMatcher.find()) { if (argSplitMatcher.end() > at) { argEnd = argSplitMatcher.start(); break; } argStart = argSplitMatcher.end(); + if (i >= completers.length-1) { + break; + } i++; } final ReplacementOptions replacements = completers[i].complete(argString.substring(argStart, argEnd), at - argStart); -- GitLab