From 607423813146fbe97f5fd284ae537af2790e25be Mon Sep 17 00:00:00 2001 From: Ethan Lafrenais Date: Wed, 29 Aug 2018 23:15:06 -0400 Subject: [PATCH] Catch string unescape exceptions when parsing DW string operands --- .../java/net/simon987/server/assembly/Assembler.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Server/src/main/java/net/simon987/server/assembly/Assembler.java b/Server/src/main/java/net/simon987/server/assembly/Assembler.java index e11b655..922f0b9 100755 --- a/Server/src/main/java/net/simon987/server/assembly/Assembler.java +++ b/Server/src/main/java/net/simon987/server/assembly/Assembler.java @@ -156,7 +156,14 @@ public class Assembler { //Unescape the string String string = value.substring(1, value.length() - 1); - string = StringEscapeUtils.unescapeJava(string); + + try { + string = StringEscapeUtils.unescapeJava(string); + } catch (IllegalArgumentException e) { + throw new InvalidOperandException( + "Invalid string operand \"" + string + "\": " + e.getMessage(), + currentLine); + } out.write(string.getBytes(StandardCharsets.UTF_16BE)); } else if (labels != null && labels.containsKey(value)) {