From 0bfbefc38a6cfdace6ede1d0c485e400898672d2 Mon Sep 17 00:00:00 2001
From: Sebastian Jackel <sjackel@trustinternational.com>
Date: Thu, 7 Aug 2014 11:06:42 +0200
Subject: [PATCH] Moved defer f.Close() up so there is no chance of returning
 without closing and handled an error on f.Chmod

---
 models/publickey.go | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/models/publickey.go b/models/publickey.go
index a03d282c0..83a3e1b87 100644
--- a/models/publickey.go
+++ b/models/publickey.go
@@ -155,17 +155,19 @@ func saveAuthorizedKeyFile(key *PublicKey) error {
 	if err != nil {
 		return err
 	}
+	defer f.Close()
 	finfo, err := f.Stat()
 	if err != nil {
 		return err
 	}
 	if finfo.Mode().Perm() > 0600 {
 		log.Error(3, "authorized_keys file has unusual permission flags: %s - setting to -rw-------", finfo.Mode().Perm().String())
-		f.Chmod(0600)
+		err = f.Chmod(0600)
+		if err != nil {
+			return err
+		}
 	}
 
-	defer f.Close()
-
 	_, err = f.WriteString(key.GetAuthorizedString())
 	return err
 }