diff --git a/runner/settings.c b/runner/settings.c
index 73d8aa13d89ba7179d9a89924193307ea00dfb12..693c5484e428616b94816d96564dd48e33b4ac00 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -1169,7 +1169,11 @@ static unsigned long parse_ul(char **val)
 
 static char *parse_str(char **val)
 {
-	return *val ? strdup(*val) : NULL;
+	char *ret = *val;
+
+	*val = NULL;
+
+	return ret;
 }
 
 #define PARSE_LINE(s, name, val, field, _f)	\