From e4f67e5aff5565900a12db4e1e485c34561c92cb Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Thu, 6 Mar 2014 10:42:25 -0800 Subject: [PATCH] Fix possible NPE in MonitoringGuacamoleReader read() and readInstruction(). --- .../net/basic/MonitoringGuacamoleReader.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/MonitoringGuacamoleReader.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/MonitoringGuacamoleReader.java index b09881c98..9c3b4bdfa 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/MonitoringGuacamoleReader.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/MonitoringGuacamoleReader.java @@ -66,13 +66,23 @@ public class MonitoringGuacamoleReader implements GuacamoleReader { @Override public char[] read() throws GuacamoleException { - return readInstruction().toString().toCharArray(); + + // Read single instruction, handle end-of-stream + GuacamoleInstruction instruction = readInstruction(); + if (instruction == null) + return null; + + return instruction.toString().toCharArray(); + } @Override public GuacamoleInstruction readInstruction() throws GuacamoleException { + // Read single instruction, handle end-of-stream GuacamoleInstruction instruction = reader.readInstruction(); + if (instruction == null) + return null; // If clipboard changed, notify listeners if (instruction.getOpcode().equals("clipboard")) {