diff options
author | Harald Hoyer <harald@redhat.com> | 2013-04-18 10:15:25 +0200 |
---|---|---|
committer | Harald Hoyer <harald@redhat.com> | 2013-04-18 11:29:00 +0200 |
commit | 98f59e59e0c31ffcb953d3a7dba0da5e6f2f55f7 (patch) | |
tree | 236c8c85234c6d8063639b079dee26d585764552 /src/shared/fileio.c | |
parent | bef89518003a37f0fbd2f53beaa6bb7d01efed45 (diff) |
fileio.c: do not parse comments after non-whitespace chars
systemd does not want to understand comments after the first
non-whitespace char occured.
key=foo #comment will result into key == "foo #comment"
key="foo" #comment will result into key == "foo#comment"
"key= #comment" will result into key == "#comment"
"key #comment" is an invalid line
Diffstat (limited to 'src/shared/fileio.c')
-rw-r--r-- | src/shared/fileio.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/shared/fileio.c b/src/shared/fileio.c index 2a272593a8..337b9e4147 100644 --- a/src/shared/fileio.c +++ b/src/shared/fileio.c @@ -239,7 +239,7 @@ static int parse_env_file_internal( break; case PRE_VALUE: - if (strchr(newline, c) || strchr(COMMENTS, c)) { + if (strchr(newline, c)) { state = PRE_KEY; key[n_key] = 0; @@ -247,7 +247,7 @@ static int parse_env_file_internal( value[n_value] = 0; /* strip trailing whitespace from key */ - while(strchr(WHITESPACE, key[--n_key])) + while(n_key && strchr(WHITESPACE, key[--n_key])) key[n_key]=0; r = push(key, value, userdata); @@ -279,6 +279,7 @@ static int parse_env_file_internal( case VALUE: if (strchr(newline, c)) { state = PRE_KEY; + key[n_key] = 0; if (value) @@ -289,7 +290,7 @@ static int parse_env_file_internal( value[last_whitespace] = 0; /* strip trailing whitespace from key */ - while(strchr(WHITESPACE, key[--n_key])) + while(n_key && strchr(WHITESPACE, key[--n_key])) key[n_key]=0; r = push(key, value, userdata); @@ -417,7 +418,7 @@ static int parse_env_file_internal( value[n_value] = 0; /* strip trailing whitespace from key */ - while(strchr(WHITESPACE, key[--n_key])) + while(n_key && strchr(WHITESPACE, key[--n_key])) key[n_key]=0; r = push(key, value, userdata); |