From: Lennart Poettering Date: Mon, 25 Mar 2019 15:54:48 +0000 (+0100) Subject: mount-util: don't clobber return value in umount_recursive() X-Git-Tag: v242-rc1~62^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f8b1904f9611a7c7518ab31a06a6b7961ca97c6a;p=thirdparty%2Fsystemd.git mount-util: don't clobber return value in umount_recursive() We shouldn't override 'r' with the result of cunescape(), since we use it to return the last error of umount(). --- diff --git a/src/shared/mount-util.c b/src/shared/mount-util.c index 9fa995f6935..8af90a5e31d 100644 --- a/src/shared/mount-util.c +++ b/src/shared/mount-util.c @@ -29,8 +29,8 @@ #include "strv.h" int umount_recursive(const char *prefix, int flags) { - bool again; int n = 0, r; + bool again; /* Try to umount everything recursively below a * directory. Also, take care of stacked mounts, and keep @@ -73,9 +73,9 @@ int umount_recursive(const char *prefix, int flags) { continue; } - r = cunescape(path, UNESCAPE_RELAX, &p); - if (r < 0) - return r; + k = cunescape(path, UNESCAPE_RELAX, &p); + if (k < 0) + return k; if (!path_startswith(p, prefix)) continue; @@ -95,7 +95,7 @@ int umount_recursive(const char *prefix, int flags) { } while (again); - return r ? r : n; + return r < 0 ? r : n; } static int get_mount_flags(const char *path, unsigned long *flags) {