
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index af0a65b..7c50261 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -274,6 +274,7 @@ x86FeatureLoad(xmlXPathContextPtr ctxt, { struct x86_map *map = data; xmlNodePtr *nodes = NULL; + xmlNodePtr ctxt_node = ctxt->node; struct x86_feature *feature = NULL; int ret = 0; int i; @@ -340,6 +341,9 @@ x86FeatureLoad(xmlXPathContextPtr ctxt, }
out: + ctxt->node = ctxt_node; + VIR_FREE(nodes); + return ret;
ah, right we are changing ctxt->node there, good catch !
Although this function is expected to change ctxt->node so the caller sets it to its original value after x86FeatureLoad returns. But this can't hurt. Good catch with VIR_FREE(nodes), I forgot to do so. Jirka