浏览代码

lib/upgrade: Cleanup failed upgrades (fixes #3500, fixes #3530)

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3535
Audrius Butkevicius 9 年之前
父节点
当前提交
76b903b2e0
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      lib/upgrade/upgrade_supported.go

+ 6 - 1
lib/upgrade/upgrade_supported.go

@@ -198,6 +198,7 @@ func upgradeToURL(archiveName, binary string, url string) error {
 	if err != nil {
 	if err != nil {
 		return err
 		return err
 	}
 	}
+	defer os.Remove(fname)
 
 
 	old := binary + ".old"
 	old := binary + ".old"
 	os.Remove(old)
 	os.Remove(old)
@@ -205,7 +206,11 @@ func upgradeToURL(archiveName, binary string, url string) error {
 	if err != nil {
 	if err != nil {
 		return err
 		return err
 	}
 	}
-	return os.Rename(fname, binary)
+	if os.Rename(fname, binary); err != nil {
+		os.Rename(old, binary)
+		return err
+	}
+	return nil
 }
 }
 
 
 func readRelease(archiveName, dir, url string) (string, error) {
 func readRelease(archiveName, dir, url string) (string, error) {