X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Futil.c;h=ce8695be25f6c3fad0ee1e2b06028278b93db824;hb=df37291a5198818e5bb1d11c34ba134aa3d79d96;hp=bdc194e80c9ce45bde0975d7ef9c5ab4b4482bfd;hpb=1b39d4b9d271f2309a193d4e4fae6633248b0e94;p=elogind.git diff --git a/src/util.c b/src/util.c index bdc194e80..ce8695be2 100644 --- a/src/util.c +++ b/src/util.c @@ -602,7 +602,7 @@ int parse_env_file( const char *fname, const char *seperator, ...) { - int r; + int r = 0; char *contents, *p; assert(fname); @@ -653,10 +653,18 @@ int parse_env_file( goto fail; } + if (v[0] == '\0') { + /* return empty value strings as NULL */ + free(v); + v = NULL; + } + free(*value); *value = v; p += n; + + r ++; break; } va_end(ap); @@ -666,8 +674,6 @@ int parse_env_file( p += strcspn(p, seperator); } - r = 0; - fail: free(contents); return r;