From 5f7c426e2a7f72c473f98be9978d243db79d8910 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 5 Jan 2011 16:06:35 +0100 Subject: fragment: properly handle quotes in assignments in EnvironmentFile= files --- src/load-fragment.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/load-fragment.c') diff --git a/src/load-fragment.c b/src/load-fragment.c index 1b23205a2f..281863264e 100644 --- a/src/load-fragment.c +++ b/src/load-fragment.c @@ -1360,7 +1360,7 @@ static int config_parse_env_file( } while (!feof(f)) { - char l[LINE_MAX], *p; + char l[LINE_MAX], *p, *u; char **t; if (!fgets(l, sizeof(l), f)) { @@ -1381,7 +1381,21 @@ static int config_parse_env_file( if (strchr(COMMENTS, *p)) continue; - t = strv_env_set(*env, p); + if (!(u = normalize_env_assignment(p))) { + log_error("Out of memory"); + r = -ENOMEM; + goto finish; + } + + t = strv_env_set(*env, u); + free(u); + + if (!t) { + log_error("Out of memory"); + r = -ENOMEM; + goto finish; + } + strv_free(*env); *env = t; } -- cgit v1.2.3-54-g00ecf