Errr, no. Please look at the context of what's going on, rather than
just blindly adding code to free a block at the point where valgrind
shows the allocation.
The full context to this diff
#define GET_CONF_STR(conf, filename, var_name) \
do { \
virConfValuePtr p = virConfGetValue (conf, #var_name); \
if (p) { \
if (checkType (p, filename, #var_name, VIR_CONF_STRING)< 0) \
goto error; \
VIR_FREE(data->var_name); \
if (!(data->var_name = strdup (p->str))) { \
virReportOOMError(); \
goto error; \
} \
} \
} while (0)
Your suggested change means we would be free'ing the config file before
we have even used it.
If you look at this line:

You'll see it matches:
GET_CONF_STR (conf, filename, host_uuid);
There are no leak reports for other uses of GET_CONF_STR, so this suggests
that 'host_uuid' is not being freed. Check daemonConfigFree and you'll see
this is indeed missing