chiark / gitweb /
Add set_consume which always takes ownership
[elogind.git] / src / shared / env-util.c
index 0f1ac9294bd1c61a12eaeb99cb075b55d28e7d88..d3d4c59ab9755abb078315c3a85cf8b0874fdbaf 100644 (file)
@@ -108,7 +108,7 @@ bool env_assignment_is_valid(const char *e) {
 
         /* POSIX says the overall size of the environment block cannot
          * be > ARG_MAX, hence the individual variable assignments
-         * cannot be either, but let's room for one trailing NUL
+         * cannot be either, but let's leave room for one trailing NUL
          * byte. */
         if (strlen(e) > ARG_MAX - 1)
                 return false;
@@ -376,7 +376,7 @@ char *strv_env_get(char **l, const char *name) {
         return strv_env_get_n(l, name, strlen(name));
 }
 
-char **strv_env_clean(char **e) {
+char **strv_env_clean_log(char **e, const char *message) {
         char **p, **q;
         int k = 0;
 
@@ -385,6 +385,8 @@ char **strv_env_clean(char **e) {
                 bool duplicate = false;
 
                 if (!env_assignment_is_valid(*p)) {
+                        if (message)
+                                log_error("Ignoring invalid environment '%s': %s", *p, message);
                         free(*p);
                         continue;
                 }
@@ -407,3 +409,7 @@ char **strv_env_clean(char **e) {
         e[k] = NULL;
         return e;
 }
+
+char **strv_env_clean(char **e) {
+        return strv_env_clean_log(e, NULL);
+}