On a Monday in 2021, Peter Krempa wrote:
On Mon, Nov 22, 2021 at 18:12:29 +0100, Peter Krempa wrote:
> Apart from code simplification the refactor of 'model' fixes an unlikely
> memory leak of the string if a duplicate model is found.
>
> While the coversion of 'label' variable may seem unnecessary it will
> come in handy in the next patch.
>
> Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
> ---
> src/conf/domain_conf.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index bd9da0744d..e829511ac5 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -8016,7 +8016,10 @@ virSecurityDeviceLabelDefParseXML(virSecurityDeviceLabelDef
***seclabels_rtn,
> size_t nseclabels = 0;
> int n;
> size_t i, j;
> - char *model, *relabel, *label, *labelskip;
> + g_autofree char *model = NULL;
> + g_autofree char *relabel = NULL;
> + g_autofree char *label = NULL;
> + g_autofree char *labelskip = NULL;
> g_autofree xmlNodePtr *list = NULL;
>
> if ((n = virXPathNodeSet("./seclabel", ctxt, &list)) < 0)
> @@ -8041,7 +8044,7 @@ virSecurityDeviceLabelDefParseXML(virSecurityDeviceLabelDef
***seclabels_rtn,
> goto error;
> }
> }
> - seclabels[i]->model = model;
> + seclabels[i]->model = g_steal_pointer(&model);
> }
>
> relabel = virXMLPropString(list[i], "relabel");
Forgot to squash the following diff into this commit:
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 17ba810467..16dea34890 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8017,10 +8017,6 @@ virSecurityDeviceLabelDefParseXML(virSecurityDeviceLabelDef
***seclabels_rtn,
size_t nseclabels = 0;
int n;
size_t i, j;
- g_autofree char *model = NULL;
- g_autofree char *relabel = NULL;
- g_autofree char *label = NULL;
- g_autofree char *labelskip = NULL;
g_autofree xmlNodePtr *list = NULL;
if ((n = virXPathNodeSet("./seclabel", ctxt, &list)) < 0)
@@ -8034,6 +8030,11 @@ virSecurityDeviceLabelDefParseXML(virSecurityDeviceLabelDef
***seclabels_rtn,
seclabels[i] = g_new0(virSecurityDeviceLabelDef, 1);
for (i = 0; i < n; i++) {
+ g_autofree char *model = NULL;
+ g_autofree char *relabel = NULL;
+ g_autofree char *label = NULL;
+ g_autofree char *labelskip = NULL;
+
/* get model associated to this override */
Reviewed-by: Ján Tomko <jtomko(a)redhat.com>
Jano