]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
process-util: tweak get_process_cwd() when calling for own process
authorLennart Poettering <lennart@poettering.net>
Mon, 25 Nov 2019 13:55:50 +0000 (14:55 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 25 Nov 2019 14:01:53 +0000 (15:01 +0100)
Let's bypass /proc if we can.

src/basic/process-util.c

index aaec6a6a990cba740194f59d14163d2268140d80..842c879c4e0815f69499e4e831442e0f8e17f517 100644 (file)
@@ -21,8 +21,8 @@
 
 #include "alloc-util.h"
 #include "architecture.h"
-#include "escape.h"
 #include "env-util.h"
+#include "escape.h"
 #include "fd-util.h"
 #include "fileio.h"
 #include "fs-util.h"
@@ -34,6 +34,7 @@
 #include "missing_sched.h"
 #include "missing_syscall.h"
 #include "namespace-util.h"
+#include "path-util.h"
 #include "process-util.h"
 #include "raw-clone.h"
 #include "rlimit-util.h"
@@ -500,6 +501,9 @@ int get_process_cwd(pid_t pid, char **cwd) {
 
         assert(pid >= 0);
 
+        if (pid == 0 || pid == getpid_cached())
+                return safe_getcwd(cwd);
+
         p = procfs_file_alloca(pid, "cwd");
 
         return get_process_link_contents(p, cwd);