[libvirt] [PATCH 24/30] security: dac: Label externalDataStore

Cole Robinson posted 30 patches 6 years, 4 months ago
[libvirt] [PATCH 24/30] security: dac: Label externalDataStore
Posted by Cole Robinson 6 years, 4 months ago
We mirror the labeling strategy that was used for its sibling
image

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 src/security/security_dac.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/security/security_dac.c b/src/security/security_dac.c
index 326b9b1a3c..2bbf773dd3 100644
--- a/src/security/security_dac.c
+++ b/src/security/security_dac.c
@@ -882,7 +882,7 @@ virSecurityDACSetImageLabelInternal(virSecurityManagerPtr mgr,
     virSecurityDeviceLabelDefPtr parent_seclabel = NULL;
     virSecurityDACDataPtr priv = virSecurityManagerGetPrivateData(mgr);
     bool remember;
-    bool is_toplevel = parent == src;
+    bool is_toplevel = parent == src || parent->externalDataStore == src;
     uid_t user;
     gid_t group;
 
@@ -946,6 +946,14 @@ virSecurityDACSetImageLabelRelative(virSecurityManagerPtr mgr,
         if (virSecurityDACSetImageLabelInternal(mgr, def, n, parent) < 0)
             return -1;
 
+        if (n->externalDataStore &&
+            virSecurityDACSetImageLabelRelative(mgr,
+                                                def,
+                                                n->externalDataStore,
+                                                parent,
+                                                flags) < 0)
+            return -1;
+
         if (!(flags & VIR_SECURITY_DOMAIN_IMAGE_LABEL_BACKING_CHAIN))
             break;
     }
-- 
2.23.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 24/30] security: dac: Label externalDataStore
Posted by Daniel Henrique Barboza 6 years, 4 months ago

On 10/7/19 6:49 PM, Cole Robinson wrote:
> We mirror the labeling strategy that was used for its sibling
> image
>
> Signed-off-by: Cole Robinson <crobinso@redhat.com>
> ---

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>

>   src/security/security_dac.c | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/src/security/security_dac.c b/src/security/security_dac.c
> index 326b9b1a3c..2bbf773dd3 100644
> --- a/src/security/security_dac.c
> +++ b/src/security/security_dac.c
> @@ -882,7 +882,7 @@ virSecurityDACSetImageLabelInternal(virSecurityManagerPtr mgr,
>       virSecurityDeviceLabelDefPtr parent_seclabel = NULL;
>       virSecurityDACDataPtr priv = virSecurityManagerGetPrivateData(mgr);
>       bool remember;
> -    bool is_toplevel = parent == src;
> +    bool is_toplevel = parent == src || parent->externalDataStore == src;
>       uid_t user;
>       gid_t group;
>   
> @@ -946,6 +946,14 @@ virSecurityDACSetImageLabelRelative(virSecurityManagerPtr mgr,
>           if (virSecurityDACSetImageLabelInternal(mgr, def, n, parent) < 0)
>               return -1;
>   
> +        if (n->externalDataStore &&
> +            virSecurityDACSetImageLabelRelative(mgr,
> +                                                def,
> +                                                n->externalDataStore,
> +                                                parent,
> +                                                flags) < 0)
> +            return -1;
> +
>           if (!(flags & VIR_SECURITY_DOMAIN_IMAGE_LABEL_BACKING_CHAIN))
>               break;
>       }

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