chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: unify SO_PEERCRED/SO_PEERSEC invocations
[elogind.git]
/
src
/
shared
/
env-util.c
diff --git
a/src/shared/env-util.c
b/src/shared/env-util.c
index 54988e6437fe2a942b0294b906dfcb9e51b5e18e..7976881ef697acd0217314412cf0a344c8a75d76 100644
(file)
--- a/
src/shared/env-util.c
+++ b/
src/shared/env-util.c
@@
-27,11
+27,10
@@
#include "utf8.h"
#include "util.h"
#include "env-util.h"
#include "utf8.h"
#include "util.h"
#include "env-util.h"
+#include "def.h"
#define VALID_CHARS_ENV_NAME \
#define VALID_CHARS_ENV_NAME \
- "0123456789" \
- "abcdefghijklmnopqrstuvwxyz" \
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
+ DIGITS LETTERS \
"_"
#ifndef ARG_MAX
"_"
#ifndef ARG_MAX
@@
-227,7
+226,7
@@
fail:
return NULL;
}
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);
assert(t);
assert(pattern);
@@
-376,7
+375,7
@@
char *strv_env_get(char **l, const char *name) {
return strv_env_get_n(l, name, strlen(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 *messag
e) {
char **p, **q;
int k = 0;
char **p, **q;
int k = 0;
@@
-385,6
+384,8
@@
char **strv_env_clean(char **e) {
bool duplicate = false;
if (!env_assignment_is_valid(*p)) {
bool duplicate = false;
if (!env_assignment_is_valid(*p)) {
+ if (message)
+ log_error("Ignoring invalid environment '%s': %s", *p, message);
free(*p);
continue;
}
free(*p);
continue;
}
@@
-404,6
+405,12
@@
char **strv_env_clean(char **e) {
e[k++] = *p;
}
e[k++] = *p;
}
- e[k] = NULL;
+ if (e)
+ e[k] = NULL;
+
return e;
}
return e;
}
+
+char **strv_env_clean(char **e) {
+ return strv_env_clean_log(e, NULL);
+}