From 76b903b2e0cf70b9c60d504f55a3702eea394055 Mon Sep 17 00:00:00 2001 From: Audrius Butkevicius Date: Tue, 23 Aug 2016 06:53:39 +0000 Subject: [PATCH] lib/upgrade: Cleanup failed upgrades (fixes #3500, fixes #3530) GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3535 --- lib/upgrade/upgrade_supported.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/upgrade/upgrade_supported.go b/lib/upgrade/upgrade_supported.go index 5ecb98ea..cae69b53 100644 --- a/lib/upgrade/upgrade_supported.go +++ b/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) {