diff -Nru systemd-229/debian/changelog systemd-229/debian/changelog --- systemd-229/debian/changelog 2018-12-11 21:05:39.000000000 +0100 +++ systemd-229/debian/changelog 2018-12-19 17:55:34.000000000 +0100 @@ -1,3 +1,11 @@ +systemd (229-4ubuntu21.12) xenial; urgency=medium + + * d/p/stop-mount-error-propagation.patch: keep mount errors local to the + failing mount point instead of blocking the processing of all mounts (LP: #1755863) + (cherry picked from commit c165888426ef99440418592a8cdbaff4b7c319b3) + + -- Victor Tapia Wed, 19 Dec 2018 17:55:34 +0100 + systemd (229-4ubuntu21.11) xenial; urgency=medium * d/p/fix-egde-case-when-processing-proc-self-mountinfo.patch: diff -Nru systemd-229/debian/patches/series systemd-229/debian/patches/series --- systemd-229/debian/patches/series 2018-12-11 20:47:53.000000000 +0100 +++ systemd-229/debian/patches/series 2018-12-19 17:55:34.000000000 +0100 @@ -125,3 +125,4 @@ #CVE-2018-6954.patch #CVE-2018-6954_2.patch fix-egde-case-when-processing-proc-self-mountinfo.patch +stop-mount-error-propagation.patch diff -Nru systemd-229/debian/patches/stop-mount-error-propagation.patch systemd-229/debian/patches/stop-mount-error-propagation.patch --- systemd-229/debian/patches/stop-mount-error-propagation.patch 1970-01-01 01:00:00.000000000 +0100 +++ systemd-229/debian/patches/stop-mount-error-propagation.patch 2018-12-19 17:55:34.000000000 +0100 @@ -0,0 +1,46 @@ +commit c165888426ef99440418592a8cdbaff4b7c319b3 +Author: Lennart Poettering +Date: Wed Nov 28 12:41:44 2018 +0100 + + mount: don't propagate errors from mount_setup_unit() further up + + If we can't process a specific line in /proc/self/mountinfo we should + log about it (which we do), but this should not affect other lines, nor + further processing of mount units. Let's keep these failures local. + + Fixes: #10874 + +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -1501,7 +1501,7 @@ + static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { + _cleanup_(mnt_free_tablep) struct libmnt_table *t = NULL; + _cleanup_(mnt_free_iterp) struct libmnt_iter *i = NULL; +- int r = 0; ++ int r; + + assert(m); + +@@ -1517,7 +1517,6 @@ + if (r < 0) + return log_error_errno(r, "Failed to parse /proc/self/mountinfo: %m"); + +- r = 0; + for (;;) { + const char *device, *path, *options, *fstype; + _cleanup_free_ char *d = NULL, *p = NULL; +@@ -1546,12 +1545,10 @@ + + (void) device_found_node(m, d, true, DEVICE_FOUND_MOUNT, set_flags); + +- k = mount_setup_unit(m, d, p, options, fstype, set_flags); +- if (r == 0 && k < 0) +- r = k; ++ (void) mount_setup_unit(m, d, p, options, fstype, set_flags); + } + +- return r; ++ return 0; + } + + static void mount_shutdown(Manager *m) {