Browse Source

Remove newline characters from ssh key before processing it.
Fixes issue #370: https://github.com/gogits/gogs/issues/370

Marios Andreopoulos 10 years ago
parent
commit
12639c577f
1 changed files with 5 additions and 2 deletions
  1. 5 2
      routers/user/setting.go

+ 5 - 2
routers/user/setting.go

@@ -171,7 +171,10 @@ func SettingsSSHKeysPost(ctx *middleware.Context, form auth.AddSSHKeyForm) {
 			return
 		}
 
-		if ok, err := models.CheckPublicKeyString(form.Content); !ok {
+		// Remove newline characters from form.KeyContent
+		cleanKeyContent := strings.Replace(form.KeyContent, "\n", "", -1),
+
+		if ok, err := models.CheckPublicKeyString(cleanKeyContent); !ok {
 			ctx.Flash.Error(ctx.Tr("form.invalid_ssh_key", err.Error()))
 			ctx.Redirect("/user/settings/ssh")
 			return
@@ -180,7 +183,7 @@ func SettingsSSHKeysPost(ctx *middleware.Context, form auth.AddSSHKeyForm) {
 		k := &models.PublicKey{
 			OwnerId: ctx.User.Id,
 			Name:    form.SSHTitle,
-			Content: form.Content,
+			Content: cleanKeyContent,
 		}
 		if err := models.AddPublicKey(k); err != nil {
 			if err == models.ErrKeyAlreadyExist {