Browse Source

race condition on keydelete

Don Bowman 9 years ago
parent
commit
ab0247b4dc
1 changed files with 3 additions and 2 deletions
  1. 3 2
      models/publickey.go

+ 3 - 2
models/publickey.go

@@ -386,8 +386,6 @@ func ListPublicKeys(uid int64) ([]*PublicKey, error) {
 
 // rewriteAuthorizedKeys finds and deletes corresponding line in authorized_keys file.
 func rewriteAuthorizedKeys(key *PublicKey, p, tmpP string) error {
-	sshOpLocker.Lock()
-	defer sshOpLocker.Unlock()
 
 	fr, err := os.Open(p)
 	if err != nil {
@@ -444,6 +442,9 @@ func UpdatePublicKey(key *PublicKey) error {
 }
 
 func deletePublicKey(e *xorm.Session, key *PublicKey) error {
+	sshOpLocker.Lock()
+	defer sshOpLocker.Unlock()
+
 	has, err := e.Get(key)
 	if err != nil {
 		return err