From 5f5aa0b2f7ff77d0afa0da2a5df12a9564e4d9ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathana=C3=ABl=20L=C3=A9caud=C3=A9?= Date: Fri, 18 Nov 2016 06:25:06 -0500 Subject: [PATCH] TCPGet: Last property check (hopefully) (#1059) * Add additional safety checks to avoid acting on non-existent objects * TCPGet: yet more checks --- nodes/core/io/31-tcpin.js | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/nodes/core/io/31-tcpin.js b/nodes/core/io/31-tcpin.js index 6b9071059..87b29c85b 100644 --- a/nodes/core/io/31-tcpin.js +++ b/nodes/core/io/31-tcpin.js @@ -492,14 +492,16 @@ module.exports = function(RED) { buf[i] = data[j]; i += 1; if ( i >= node.splitc) { - clients[connection_id].msg.payload = new Buffer(i); - buf.copy(clients[connection_id].msg.payload,0,0,i); - node.send(clients[connection_id].msg); - if (clients[connection_id].client) { - node.status({}); clients[connection_id].client.destroy(); - delete clients[connection_id]; + if (clients[connection_id]) { + clients[connection_id].msg.payload = new Buffer(i); + buf.copy(clients[connection_id].msg.payload,0,0,i); + node.send(clients[connection_id].msg); + if (clients[connection_id].client) { + node.status({}); clients[connection_id].client.destroy(); + delete clients[connection_id]; + } + i = 0; } - i = 0; } } // look for a char @@ -507,14 +509,16 @@ module.exports = function(RED) { buf[i] = data[j]; i += 1; if (data[j] == node.splitc) { - clients[connection_id].msg.payload = new Buffer(i); - buf.copy(clients[connection_id].msg.payload,0,0,i); - node.send(clients[connection_id].msg); - if (clients[connection_id].client) { - node.status({}); clients[connection_id].client.destroy(); - delete clients[connection_id]; + if (clients[connection_id]) { + clients[connection_id].msg.payload = new Buffer(i); + buf.copy(clients[connection_id].msg.payload,0,0,i); + node.send(clients[connection_id].msg); + if (clients[connection_id].client) { + node.status({}); clients[connection_id].client.destroy(); + delete clients[connection_id]; + } + i = 0; } - i = 0; } } } @@ -560,7 +564,9 @@ module.exports = function(RED) { }); } else { - clients[connection_id].client.write(clients[connection_id].msg.payload); + if (clients[connection_id] && clients[connection_id].client) { + clients[connection_id].client.write(clients[connection_id].msg.payload); + } } });