Skip to content

Commit a345877

Browse files
authored
Merge pull request #17642 from iterate-ch/bugfix/GH-16953-nullpointer
Fix null pointer on error retrieving identities from agent.
2 parents afd8798 + 9a3c0a6 commit a345877

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

ssh/src/main/java/ch/cyberduck/core/sftp/openssh/OpenSSHAgentAuthenticator.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,19 @@ public Collection<Identity> getIdentities() {
5858
return Collections.emptyList();
5959
}
6060
log.debug("Retrieve identities from proxy {}", proxy);
61-
final List<Identity> identities = Arrays.asList(proxy.getIdentities());
62-
log.debug("Found {} identities", identities.size());
63-
return identities;
61+
try {
62+
final Identity[] retrieved = proxy.getIdentities();
63+
if(null == retrieved) {
64+
return Collections.emptyList();
65+
}
66+
final List<Identity> identities = Arrays.asList(retrieved);
67+
log.debug("Found {} identities", identities.size());
68+
return identities;
69+
}
70+
catch(Exception e) {
71+
log.warn("Ignore failure reading identities from {}", proxy);
72+
return Collections.emptyList();
73+
}
6474
}
6575

6676
@Override

ssh/src/main/java/ch/cyberduck/core/sftp/putty/PageantAuthenticator.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import org.apache.logging.log4j.LogManager;
2424
import org.apache.logging.log4j.Logger;
2525

26-
import java.util.ArrayList;
26+
import java.util.Arrays;
2727
import java.util.Collection;
2828
import java.util.Collections;
2929
import java.util.List;
@@ -62,15 +62,19 @@ public Collection<Identity> getIdentities() {
6262
return Collections.emptyList();
6363
}
6464
log.debug("Retrieve identities from proxy {}", proxy);
65-
final List<Identity> identities = new ArrayList<Identity>();
6665
try {
67-
Collections.addAll(identities, proxy.getIdentities());
66+
final Identity[] retrieved = proxy.getIdentities();
67+
if(null == retrieved) {
68+
return Collections.emptyList();
69+
}
70+
final List<Identity> identities = Arrays.asList(retrieved);
6871
log.debug("Found {} identities", identities.size());
72+
return identities;
6973
}
7074
catch(Exception e) {
7175
log.warn("Ignore failure reading identities from {}", proxy);
76+
return Collections.emptyList();
7277
}
73-
return identities;
7478
}
7579

7680
@Override

0 commit comments

Comments
 (0)