From dd6b5e166212facbfb9e16cd7aba6103e7e51edb Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Tue, 22 Jan 2019 15:29:15 +0100
Subject: [PATCH] OO-3830: make the length of the char array is correct

---
 .../java/org/olat/ims/qti21/pool/QTI12To21HtmlHandler.java   | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/olat/ims/qti21/pool/QTI12To21HtmlHandler.java b/src/main/java/org/olat/ims/qti21/pool/QTI12To21HtmlHandler.java
index f1b086190d8..f8d2786d662 100644
--- a/src/main/java/org/olat/ims/qti21/pool/QTI12To21HtmlHandler.java
+++ b/src/main/java/org/olat/ims/qti21/pool/QTI12To21HtmlHandler.java
@@ -48,7 +48,7 @@ class QTI12To21HtmlHandler extends DefaultHandler {
 	private final XMLStreamWriter xtw;
 
 	private int subLevel = 0;
-	private Deque<String> skipTags = new ArrayDeque<String>();
+	private Deque<String> skipTags = new ArrayDeque<>();
 	private Map<String,String> materialsMapping = new HashMap<>();
 
 	private boolean envelopP = false;
@@ -157,6 +157,9 @@ class QTI12To21HtmlHandler extends DefaultHandler {
 				if(start < 0) {
 					start = 0;//Bug neko
 				}
+				if(start + length > ch.length) {
+					length = ch.length - start;// Make sure the length is correct
+				}
 				xtw.writeCharacters(ch, start, length);
 			} else {
 				xtw.writeCharacters(ch, start, length);
-- 
GitLab