From: Arvin Schnell Date: Thu, 14 Aug 2014 12:17:16 +0000 (+0200) Subject: - cleanup after failed create-config (bnc#863578) X-Git-Tag: v0.2.4~4^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0740d2e583b5ab4b981421d1102dee0028163530;p=thirdparty%2Fsnapper.git - cleanup after failed create-config (bnc#863578) --- diff --git a/package/snapper.changes b/package/snapper.changes index ef46228d..2c71fb7c 100644 --- a/package/snapper.changes +++ b/package/snapper.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Aug 14 14:15:21 CEST 2014 - aschnell@suse.de + +- cleanup after failed create-config (bnc#863578) + ------------------------------------------------------------------- Thu Jul 31 15:38:16 CEST 2014 - aschnell@suse.de diff --git a/snapper/Snapper.cc b/snapper/Snapper.cc index 88292450..995ecdbc 100644 --- a/snapper/Snapper.cc +++ b/snapper/Snapper.cc @@ -403,7 +403,23 @@ namespace snapper throw CreateConfigFailedException("modifying config failed"); } - filesystem->createConfig(add_fstab); + try + { + filesystem->createConfig(add_fstab); + } + catch (...) + { + SysconfigFile sysconfig(SYSCONFIGFILE); + vector config_names; + sysconfig.getValue("SNAPPER_CONFIGS", config_names); + config_names.erase(remove(config_names.begin(), config_names.end(), config_name), + config_names.end()); + sysconfig.setValue("SNAPPER_CONFIGS", config_names); + + unlink((CONFIGSDIR "/" + config_name).c_str()); + + throw; + } #ifdef ENABLE_ROLLBACK if (subvolume == "/" && filesystem->fstype() == "btrfs" &&