[systemd-devel] [PATCH 1/2] logind: remove per-user runtime dir again if setup fails
Lennart Poettering
lennart at poettering.net
Tue Jan 27 09:42:39 PST 2015
On Fri, 23.01.15 15:26, Christian Seiler (christian at iwakd.de) wrote:
> If setup of per-user runtime dir fails, clean up afterwards by removing
> the directory before returning from the function, so we don't leave the
> directory behind.
>
> If this is not done, the second time the user logs in logind would
> assume that the directory is already set up, even though it isn't.
Ah, thanks! And this even fixes that we passed an incorrect error
number to log_error_errno()...
Applied!
> ---
> src/login/logind-user.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/src/login/logind-user.c b/src/login/logind-user.c
> index 49c373b..d7930ad 100644
> --- a/src/login/logind-user.c
> +++ b/src/login/logind-user.c
> @@ -336,6 +336,9 @@ static int user_mkdir_runtime_path(User *u) {
>
> r = mount("tmpfs", p, "tmpfs", MS_NODEV|MS_NOSUID, t);
> if (r < 0) {
> + /* try to clean up, but ignore errors */
> + r = -errno;
> + rmdir(p);
> log_error_errno(r, "Failed to mount per-user tmpfs directory %s: %m", p);
> goto fail;
> }
> --
> 2.1.4
>
>
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list