From c01d44f22983b5e61271c728e8e209e73d69fe16 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Mon, 9 Jun 2014 15:48:11 +0000 Subject: Actually use atomic_symlink_update for something This function was added to ensure safe, automatic updates of the default system symlink, but for some reason, was never used. Instead it open-coded a vulnerable way of doing this, which could fail if an upgrade was aborted at the wrong time. So now we use atomic_symlink_update, which won't fail, and the worst that can happen is a temporary directory gets left around. --- system-version-manager/system-version-manager | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/system-version-manager/system-version-manager b/system-version-manager/system-version-manager index 64ca5a4..bd31c66 100755 --- a/system-version-manager/system-version-manager +++ b/system-version-manager/system-version-manager @@ -144,10 +144,8 @@ class SystemVersionManager(object): os.rename(temp_config, config) default_path = os.path.join(self.mount_dir, 'systems', 'default') - default_path_tmp = os.path.join(self.mount_dir, 'systems', 'default-tmp') if os.path.islink(default_path): - os.symlink(default, default_path_tmp) - os.rename(default_path_tmp, default_path) + self._atomic_symlink_update(default, default_path) def cmd_list(self): for system in self._get_systems(): -- cgit v1.2.1