chiark / gitweb /
manager: validate environment parameters for SetEnvironment(), UnsetEnvironment(...
[elogind.git] / src / shared / env-util.c
index 7a213a77c0ea8ea9261045c65e6f015960a20040..9a833d22e4d176208088e73ff9aeba2d10e4c18e 100644 (file)
@@ -135,6 +135,21 @@ bool strv_env_is_valid(char **e) {
         return true;
 }
 
+bool strv_env_name_or_assignment_is_valid(char **l) {
+        char **p, **q;
+
+        STRV_FOREACH(p, l) {
+                if (!env_assignment_is_valid(*p) && !env_name_is_valid(*p))
+                        return false;
+
+                STRV_FOREACH(q, p + 1)
+                        if (streq(*p, *q))
+                                return false;
+        }
+
+        return true;
+}
+
 static int env_append(char **r, char ***k, char **a) {
         assert(r);
         assert(k);