summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/transport/ssh/keys/BaseKeyCommand.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2014-04-25 14:44:25 -0400
committerJames Moger <james.moger@gitblit.com>2014-04-25 14:44:25 -0400
commit039686c54a947f166ba80d79187ba945cac77ad5 (patch)
treee5daecd9645049b100873fce52de16eb4d149e2c /src/main/java/com/gitblit/transport/ssh/keys/BaseKeyCommand.java
parente160594f7f0417de9ec04105feab261ed3bd9dc3 (diff)
downloadgitblit-039686c54a947f166ba80d79187ba945cac77ad5.tar.gz
gitblit-039686c54a947f166ba80d79187ba945cac77ad5.zip
Prevent adding empty or invalid SSH public keys
Diffstat (limited to 'src/main/java/com/gitblit/transport/ssh/keys/BaseKeyCommand.java')
-rw-r--r--src/main/java/com/gitblit/transport/ssh/keys/BaseKeyCommand.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/main/java/com/gitblit/transport/ssh/keys/BaseKeyCommand.java b/src/main/java/com/gitblit/transport/ssh/keys/BaseKeyCommand.java
index 588770f4..4b1d6b8f 100644
--- a/src/main/java/com/gitblit/transport/ssh/keys/BaseKeyCommand.java
+++ b/src/main/java/com/gitblit/transport/ssh/keys/BaseKeyCommand.java
@@ -37,17 +37,20 @@ abstract class BaseKeyCommand extends SshCommand {
throws UnsupportedEncodingException, IOException {
int idx = -1;
if (sshKeys.isEmpty() || (idx = sshKeys.indexOf("-")) >= 0) {
- String sshKey = "";
+ String content = "";
BufferedReader br = new BufferedReader(new InputStreamReader(
in, Charsets.UTF_8));
String line;
while ((line = br.readLine()) != null) {
- sshKey += line + "\n";
+ content += line + "\n";
}
- if (idx == -1) {
- sshKeys.add(sshKey.trim());
- } else {
- sshKeys.set(idx, sshKey.trim());
+ final String sshKey = content.trim();
+ if (!sshKey.isEmpty()) {
+ if (idx == -1) {
+ sshKeys.add(sshKey);
+ } else {
+ sshKeys.set(idx, sshKey);
+ }
}
}
return sshKeys;