You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
34 lines
1.0 KiB
2 years ago
|
From 9ba5d8811630a3d2af90fdc52f4fd6b03ee9e692 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||
|
Date: Tue, 21 May 2019 19:26:12 +0200
|
||
|
Subject: [PATCH] core: unset HOME=/ that the kernel gives us
|
||
|
|
||
|
Partially fixes #12389.
|
||
|
|
||
|
%h would return "/" in a machine, but "/root" in a container. Let's fix
|
||
|
this by resetting $HOME to the expected value.
|
||
|
|
||
|
(cherry picked from commit 9d48671c62de133a2b9fe7c31e70c0ff8e68f2db)
|
||
|
|
||
|
Resolves: #2056527
|
||
|
---
|
||
|
src/core/main.c | 5 +++++
|
||
|
1 file changed, 5 insertions(+)
|
||
|
|
||
|
diff --git a/src/core/main.c b/src/core/main.c
|
||
|
index d897155644..08a4df3c97 100644
|
||
|
--- a/src/core/main.c
|
||
|
+++ b/src/core/main.c
|
||
|
@@ -1307,6 +1307,11 @@ static int fixup_environment(void) {
|
||
|
if (setenv("TERM", t, 1) < 0)
|
||
|
return -errno;
|
||
|
|
||
|
+ /* The kernels sets HOME=/ for init. Let's undo this. */
|
||
|
+ if (path_equal_ptr(getenv("HOME"), "/") &&
|
||
|
+ unsetenv("HOME") < 0)
|
||
|
+ log_warning_errno(errno, "Failed to unset $HOME: %m");
|
||
|
+
|
||
|
return 0;
|
||
|
}
|
||
|
|