From 35435e16b63771c65f8223ff3fd2580cc8bad856 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 8 Apr 2019 11:13:56 -0400 Subject: Fix bug in File.containsShellSetting It replaced whole shell conffile content with the setting if the file did not previously contain a line setting the key to some value. InsertSection is passed the whole content of the file, which does not contain the section yet (here the section is a single line). Probably this was not noticed because it's common for a shell config file to contain default values, so the buggy InsertSection rarely gets used. This commit was sponsored by Ethan Aubin. --- debian/changelog | 8 ++++++++ src/Propellor/Property/ConfFile.hs | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 553a663b..988c3641 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +propellor (5.7.1) UNRELEASED; urgency=medium + + * Fix bug in File.containsShellSetting that replaced whole shell conffile + content with the setting if the file did not previously contain a line + setting the key to some value. + + -- Joey Hess Mon, 08 Apr 2019 11:09:04 -0400 + propellor (5.7.0) unstable; urgency=medium * Sbuild.built no longer includes Apt.stdSourcesList by default, diff --git a/src/Propellor/Property/ConfFile.hs b/src/Propellor/Property/ConfFile.hs index 0682e466..95e2c2d5 100644 --- a/src/Propellor/Property/ConfFile.hs +++ b/src/Propellor/Property/ConfFile.hs @@ -161,7 +161,7 @@ containsShellSetting f (k, v) = adjust `before` dedup isline (not . isline) (const [line]) - (const [line]) + (++ [line]) f dedup = fileProperty "" dedup' f dedup' ls = let (pre, wanted, post) = foldl' find ([], [], []) ls -- cgit v1.2.3