diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 7e5fba4330..84d0c16996 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -708,7 +708,7 @@ int config_parse_string( void *data, void *userdata) { - char **s = data, *n; + char **s = data; assert(filename); assert(lvalue); @@ -720,16 +720,8 @@ int config_parse_string( return 0; } - if (isempty(rvalue)) - n = NULL; - else { - n = strdup(rvalue); - if (!n) - return log_oom(); - } - - free(*s); - *s = n; + if (free_and_strdup(s, empty_to_null(rvalue)) < 0) + return log_oom(); return 0; }