Bläddra i källkod

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

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3535
Audrius Butkevicius 9 år sedan
förälder
incheckning
76b903b2e0
1 ändrade filer med 6 tillägg och 1 borttagningar
  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 {
 		return err
 	}
+	defer os.Remove(fname)
 
 	old := binary + ".old"
 	os.Remove(old)
@@ -205,7 +206,11 @@ func upgradeToURL(archiveName, binary string, url string) error {
 	if err != nil {
 		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) {