summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDariusz Luksza <dariusz@luksza.org>2016-03-08 15:28:30 +0100
committerDariusz Luksza <dariusz@luksza.org>2016-03-08 15:42:59 +0100
commit586c141db06dd0fc02bf29dac0ffed840c53b70a (patch)
treeaf68f65bf1d122730eb427c3792c29b982fb5e44
parentc3b2af8e068e7706159b2152d4d8c9e74f34125e (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.java6
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++) {