X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fbasic%2Ffileio.c;h=ded6e56968e56f24f85f74b5fb1bdc1e72773f08;hb=c0e8baacdbcf4cee407eb0c50c6fbb7e4e089158;hp=eadc8b7ea0f31c880996bdb3a375664a64126702;hpb=aec69f738f9d44afa89dbff2616edc6b5372900d;p=elogind.git diff --git a/src/basic/fileio.c b/src/basic/fileio.c index eadc8b7ea..ded6e5696 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -553,13 +553,14 @@ static int parse_env_file_internal( } } - if (state == PRE_VALUE || - state == VALUE || - state == VALUE_ESCAPE || - state == SINGLE_QUOTE_VALUE || - state == SINGLE_QUOTE_VALUE_ESCAPE || - state == DOUBLE_QUOTE_VALUE || - state == DOUBLE_QUOTE_VALUE_ESCAPE) { + if (IN_SET(state, + PRE_VALUE, + VALUE, + VALUE_ESCAPE, + SINGLE_QUOTE_VALUE, + SINGLE_QUOTE_VALUE_ESCAPE, + DOUBLE_QUOTE_VALUE, + DOUBLE_QUOTE_VALUE_ESCAPE)) { key[n_key] = 0; @@ -780,6 +781,7 @@ static int merge_env_file_push( if (!env_name_is_valid(key)) { log_error("%s:%u: invalid variable name \"%s\", ignoring.", strna(filename), line, key); + free(value); return 0; }