From f72093c9d75da963544a48a0eee8107ecb170cf8 Mon Sep 17 00:00:00 2001 From: Justin Lowery Date: Thu, 10 May 2018 02:20:59 -0400 Subject: [PATCH] Fix RPC handler race condition causing a crash (#2940) Fixes #2861 --- app/ui/window.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/ui/window.js b/app/ui/window.js index 923cfe42..ec2bc197 100644 --- a/app/ui/window.js +++ b/app/ui/window.js @@ -127,9 +127,6 @@ module.exports = class Window { const session = sessions.get(uid); if (session) { session.exit(); - } else { - //eslint-disable-next-line no-console - console.log('session not found by', uid); } }); rpc.on('unmaximize', () => { @@ -143,19 +140,22 @@ module.exports = class Window { }); rpc.on('resize', ({uid, cols, rows}) => { const session = sessions.get(uid); - session.resize({cols, rows}); + if (session) { + session.resize({cols, rows}); + } }); rpc.on('data', ({uid, data, escaped}) => { const session = sessions.get(uid); + if (session) { + if (escaped) { + const escapedData = session.shell.endsWith('cmd.exe') + ? `"${data}"` // This is how cmd.exe does it + : `'${data.replace(/'/g, `'\\''`)}'`; // Inside a single-quoted string nothing is interpreted - if (escaped) { - const escapedData = session.shell.endsWith('cmd.exe') - ? `"${data}"` // This is how cmd.exe does it - : `'${data.replace(/'/g, `'\\''`)}'`; // Inside a single-quoted string nothing is interpreted - - session.write(escapedData); - } else { - session.write(data); + session.write(escapedData); + } else { + session.write(data); + } } }); rpc.on('open external', ({url}) => {