Skip to content

Commit d2455f8

Browse files
committed
null check
1 parent 79fa8ce commit d2455f8

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/main/java/hudson/plugins/ec2/SlaveTemplate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ public class SlaveTemplate implements Describable<SlaveTemplate> {
238238

239239
public HostKeyVerificationStrategyEnum hostKeyVerificationStrategy;
240240

241-
public final String staticHostKeys;
241+
public String staticHostKeys;
242242

243243
public final boolean associatePublicIp;
244244

src/main/java/hudson/plugins/ec2/ssh/verifiers/CheckStaticStrategy.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@
2626
import hudson.model.TaskListener;
2727
import hudson.plugins.ec2.EC2Cloud;
2828
import hudson.plugins.ec2.EC2Computer;
29+
import hudson.plugins.ec2.SlaveTemplate;
2930
import hudson.slaves.OfflineCause;
3031

3132
import java.util.ArrayList;
3233
import java.util.Base64;
3334

3435
import java.io.IOException;
36+
import java.util.Objects;
3537
import java.util.Scanner;
3638
import java.util.logging.Level;
3739
import java.util.logging.Logger;
@@ -51,9 +53,17 @@ public class CheckStaticStrategy extends SshHostKeyVerificationStrategy {
5153
private static final Logger LOGGER = Logger.getLogger(CheckStaticStrategy.class.getName());
5254

5355
private ArrayList<HostKey> getStaticHostKeys(EC2Computer computer) {
54-
ArrayList<HostKey> hostKeys = new ArrayList<>();
56+
ArrayList<HostKey> hostKeys;
57+
hostKeys = new ArrayList<>();
58+
59+
SlaveTemplate computerSlaveTemplate = computer.getSlaveTemplate();
60+
if (computerSlaveTemplate == null) {
61+
EC2Cloud.log(LOGGER, Level.WARNING, computer.getListener(), "slave template not exists");
62+
return hostKeys;
63+
}
64+
65+
Scanner scanner = new Scanner(computerSlaveTemplate.getStaticHostKeys());
5566

56-
Scanner scanner = new Scanner(computer.getSlaveTemplate().getStaticHostKeys());
5767
while (scanner.hasNextLine()) {
5868
String hostKeyString = scanner.nextLine();
5969
String[] hostKeyParts = hostKeyString.split(" ");
@@ -93,7 +103,7 @@ public boolean verify(EC2Computer computer, HostKey hostKey, TaskListener listen
93103
return false;
94104

95105
} else if (existingHostKey.equals(hostKey)) {
96-
EC2Cloud.log(LOGGER, Level.INFO, computer.getListener(), String.format("Connection allowed after the host key has been verified"));
106+
EC2Cloud.log(LOGGER, Level.INFO, computer.getListener(), "Connection allowed after the host key has been verified");
97107
return true;
98108
} else {
99109
EC2Cloud.log(LOGGER, Level.WARNING, computer.getListener(), String.format("The SSH key (%s) presented by the instance has changed since first saved (%s). The connection to %s is closed to prevent a possible man-in-the-middle attack", hostKey.getFingerprint(), existingHostKey.getFingerprint(), computer.getName()));

0 commit comments

Comments
 (0)