Blob Blame History Raw
From c145af2a34a47f357711a2ae97c3d71db8df905f Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 23 Jul 2015 23:47:54 +0200
Subject: [PATCH] process: an empty environment block should be returned as
 such

An empty env block is completely valid, hence return it as such, and
don't turn it into an error.

(cherry picked from commit 03c55bc0b980e2a6aaf6f166a9271ed8ecce2222)

Resolves: #1685648
---
 src/shared/util.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/shared/util.c b/src/shared/util.c
index 07de902aaf..82c8e433dd 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
@@ -954,7 +954,13 @@ int get_process_environ(pid_t pid, char **env) {
                         sz += cescape_char(c, outcome + sz);
         }
 
-        outcome[sz] = '\0';
+        if (!outcome) {
+                outcome = strdup("");
+                if (!outcome)
+                        return -ENOMEM;
+        } else
+                outcome[sz] = '\0';
+
         *env = outcome;
         outcome = NULL;