chiark / gitweb /
util: when we try to read /proc/cmdline in a container, read /proc/1/cmdline instead
authorLennart Poettering <lennart@poettering.net>
Mon, 23 Dec 2013 17:10:57 +0000 (18:10 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 23 Dec 2013 17:13:12 +0000 (18:13 +0100)
src/shared/util.c

index 5c9d0bb730d396a16d4f02d3e56dae88b2c200f4..8d7cf5398f981e248bf0301f32b60260c9307d5e 100644 (file)
@@ -5994,8 +5994,20 @@ int proc_cmdline(char **ret) {
         int r;
 
         if (detect_container(NULL) > 0) {
         int r;
 
         if (detect_container(NULL) > 0) {
-                *ret = NULL;
-                return 0;
+                char *buf, *p;
+                size_t sz = 0;
+
+                r = read_full_file("/proc/1/cmdline", &buf, &sz);
+                if (r < 0)
+                        return r;
+
+                for (p = buf; p + 1 < buf + sz; p++)
+                        if (*p == 0)
+                                *p = ' ';
+
+                *p  = 0;
+                *ret = buf;
+                return 1;
         }
 
         r = read_one_line_file("/proc/cmdline", ret);
         }
 
         r = read_one_line_file("/proc/cmdline", ret);