diff options
author | Dariusz Luksza <dariusz@luksza.org> | 2016-03-08 15:28:30 +0100 |
---|---|---|
committer | Dariusz Luksza <dariusz@luksza.org> | 2016-03-08 15:42:59 +0100 |
commit | 586c141db06dd0fc02bf29dac0ffed840c53b70a (patch) | |
tree | af68f65bf1d122730eb427c3792c29b982fb5e44 | |
parent | c3b2af8e068e7706159b2152d4d8c9e74f34125e (diff) |
Prevent NPE in the SshLog
This NPE can happen when command was destroyed (probably by user
canceling the ssh operation) using CommandFactoryProvider.onDestroy
before it was even logged. In this case we provide meaningful audit
entry instead of not-so-nice NPE with stack trace in the logs.
Change-Id: If15a9475a4d98ade9a263b4ed4dcf5a1dd694731
Signed-off-by: Dariusz Luksza <dariusz@luksza.org>
-rw-r--r-- | gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java index 439b8c8f13..b8b49eb320 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java @@ -152,6 +152,9 @@ class SshLog implements LifecycleListener { } private Multimap<String, ?> extractParameters(DispatchCommand dcmd) { + if (dcmd == null) { + return ArrayListMultimap.create(0, 0); + } String[] cmdArgs = dcmd.getArguments(); String paramName = null; int argPos = 0; @@ -268,6 +271,9 @@ class SshLog implements LifecycleListener { } private String extractWhat(DispatchCommand dcmd) { + if (dcmd == null) { + return "Command was already destroyed"; + } StringBuilder commandName = new StringBuilder(dcmd.getCommandName()); String[] args = dcmd.getArguments(); for (int i = 1; i < args.length; i++) { |