Browse Source

clientupdate: check for privileges earlier (#9964)

Fixes #9963

Signed-off-by: Chris Palmer <[email protected]>
Chris Palmer 2 years ago
parent
commit
f66dc8dc0a
1 changed files with 9 additions and 9 deletions
  1. 9 9
      clientupdate/clientupdate.go

+ 9 - 9
clientupdate/clientupdate.go

@@ -272,12 +272,12 @@ func (up *Updater) updateSynology() error {
 		return fmt.Errorf("cannot find Synology package for os=%s arch=%s, please report a bug with your device model", osName, arch)
 	}
 
-	if !up.confirm(latest.SPKsVersion) {
-		return nil
-	}
 	if err := requireRoot(); err != nil {
 		return err
 	}
+	if !up.confirm(latest.SPKsVersion) {
+		return nil
+	}
 
 	// Download the SPK into a temporary directory.
 	spkDir, err := os.MkdirTemp("", "tailscale-update")
@@ -716,12 +716,12 @@ func (up *Updater) updateWindows() error {
 		arch = "x86"
 	}
 
-	if !up.confirm(ver) {
-		return nil
-	}
 	if !winutil.IsCurrentProcessElevated() {
 		return errors.New("must be run as Administrator")
 	}
+	if !up.confirm(ver) {
+		return nil
+	}
 
 	tsDir := filepath.Join(os.Getenv("ProgramData"), "Tailscale")
 	msiDir := filepath.Join(tsDir, "MSICache")
@@ -914,13 +914,13 @@ func (up *Updater) updateLinuxBinary() error {
 	if err != nil {
 		return err
 	}
-	if !up.confirm(ver) {
-		return nil
-	}
 	// Root is needed to overwrite binaries and restart systemd unit.
 	if err := requireRoot(); err != nil {
 		return err
 	}
+	if !up.confirm(ver) {
+		return nil
+	}
 
 	dlPath, err := up.downloadLinuxTarball(ver)
 	if err != nil {