[PATCH 03/12] virSecurityLabelDefParseXML: Directly assign strings into appropriate variables

Peter Krempa pkrempa at redhat.com
Mon Nov 22 17:12:23 UTC 2021


'seclabel->label', 'seclabel->imagelabel' and 'seclabel->baselabel' are
populated by stealing the pointer from the 'p' temporary string. Remove
the extra step.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/conf/domain_conf.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ba38d510dd..24de57005c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -7874,36 +7874,32 @@ virSecurityLabelDefParseXML(xmlXPathContextPtr ctxt,
     if (seclabel->type == VIR_DOMAIN_SECLABEL_STATIC ||
         (!(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE) &&
          seclabel->type != VIR_DOMAIN_SECLABEL_NONE)) {
-        p = virXPathStringLimit("string(./label[1])",
-                                VIR_SECURITY_LABEL_BUFLEN-1, ctxt);
-        if (p == NULL) {
+        seclabel->label = virXPathStringLimit("string(./label[1])",
+                                              VIR_SECURITY_LABEL_BUFLEN-1, ctxt);
+        if (!seclabel->label) {
             virReportError(VIR_ERR_XML_ERROR,
                            "%s", _("security label is missing"));
             goto error;
         }
-
-        seclabel->label = g_steal_pointer(&p);
     }

     /* Only parse imagelabel, if requested live XML with relabeling */
     if (seclabel->relabel &&
         (!(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE) &&
          seclabel->type != VIR_DOMAIN_SECLABEL_NONE)) {
-        p = virXPathStringLimit("string(./imagelabel[1])",
-                                VIR_SECURITY_LABEL_BUFLEN-1, ctxt);
-        if (p == NULL) {
+        seclabel->imagelabel = virXPathStringLimit("string(./imagelabel[1])",
+                                                   VIR_SECURITY_LABEL_BUFLEN-1, ctxt);
+        if (!seclabel->imagelabel) {
             virReportError(VIR_ERR_XML_ERROR,
                            "%s", _("security imagelabel is missing"));
             goto error;
         }
-        seclabel->imagelabel = g_steal_pointer(&p);
     }

     /* Only parse baselabel for dynamic label type */
     if (seclabel->type == VIR_DOMAIN_SECLABEL_DYNAMIC) {
-        p = virXPathStringLimit("string(./baselabel[1])",
-                                VIR_SECURITY_LABEL_BUFLEN-1, ctxt);
-        seclabel->baselabel = g_steal_pointer(&p);
+        seclabel->baselabel = virXPathStringLimit("string(./baselabel[1])",
+                                                  VIR_SECURITY_LABEL_BUFLEN-1, ctxt);
     }

     return seclabel;
-- 
2.31.1




More information about the libvir-list mailing list