[RFC PATCH 2/5] util: seclabel: Add deep copy function for device labels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



---
 src/util/virseclabel.c | 22 ++++++++++++++++++++++
 src/util/virseclabel.h |  5 ++++-
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/src/util/virseclabel.c b/src/util/virseclabel.c
index 5a4d78e..93c12cc 100644
--- a/src/util/virseclabel.c
+++ b/src/util/virseclabel.c
@@ -80,3 +80,25 @@ virSecurityDeviceLabelDefNew(const char *model)

     return seclabel;
 }
+
+virSecurityDeviceLabelDefPtr
+virSecurityDeviceLabelDefCopy(const virSecurityDeviceLabelDef *src)
+{
+    virSecurityDeviceLabelDefPtr ret;
+
+    if (VIR_ALLOC(ret) < 0)
+        return NULL;
+
+    ret->norelabel = src->norelabel;
+    ret->labelskip = src->labelskip;
+
+    if (VIR_STRDUP(ret->model, src->model) < 0 ||
+        VIR_STRDUP(ret->label, src->label) < 0)
+        goto error;
+
+    return ret;
+
+ error:
+    virSecurityDeviceLabelDefFree(ret);
+    return NULL;
+}
diff --git a/src/util/virseclabel.h b/src/util/virseclabel.h
index 9e970a5..993fd81 100644
--- a/src/util/virseclabel.h
+++ b/src/util/virseclabel.h
@@ -45,7 +45,7 @@ struct _virSecurityLabelDef {
 };


-/* Security configuration for domain */
+/* Security configuration for device */
 typedef struct _virSecurityDeviceLabelDef virSecurityDeviceLabelDef;
 typedef virSecurityDeviceLabelDef *virSecurityDeviceLabelDefPtr;
 struct _virSecurityDeviceLabelDef {
@@ -61,6 +61,9 @@ virSecurityLabelDefNew(const char *model);
 virSecurityDeviceLabelDefPtr
 virSecurityDeviceLabelDefNew(const char *model);

+virSecurityDeviceLabelDefPtr
+virSecurityDeviceLabelDefCopy(const virSecurityDeviceLabelDef *src);
+
 void virSecurityLabelDefFree(virSecurityLabelDefPtr def);
 void virSecurityDeviceLabelDefFree(virSecurityDeviceLabelDefPtr def);

-- 
1.9.3

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]