#include "utf8.h"
#include "util.h"
#include "env-util.h"
+#include "def.h"
#define VALID_CHARS_ENV_NAME \
- "0123456789" \
- "abcdefghijklmnopqrstuvwxyz" \
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
+ DIGITS LETTERS \
"_"
#ifndef ARG_MAX
return NULL;
}
-static bool env_match(const char *t, const char *pattern) {
+_pure_ static bool env_match(const char *t, const char *pattern) {
assert(t);
assert(pattern);
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;
bool duplicate = false;
if (!env_assignment_is_valid(*p)) {
+ if (message)
+ log_error("Ignoring invalid environment '%s': %s", *p, message);
free(*p);
continue;
}
e[k++] = *p;
}
- e[k] = NULL;
+ if (e)
+ e[k] = NULL;
+
return e;
}
+
+char **strv_env_clean(char **e) {
+ return strv_env_clean_log(e, NULL);
+}