[libvirt] [PATCH for v5.3.0 12/17] security_util: Introduce virSecurityMoveRememberedLabel

Cole Robinson crobinso at redhat.com
Wed Apr 10 20:57:17 UTC 2019


On 3/28/19 11:04 AM, Michal Privoznik wrote:
> A simple helper function that would be used from DAC and SELinux
> drivers.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/security/security_util.c | 75 ++++++++++++++++++++++++++++++++++++
>  src/security/security_util.h |  5 +++
>  2 files changed, 80 insertions(+)
> 
> diff --git a/src/security/security_util.c b/src/security/security_util.c
> index 3c24d7cded..64039ad4a4 100644
> --- a/src/security/security_util.c
> +++ b/src/security/security_util.c
> @@ -256,3 +256,78 @@ virSecuritySetRememberedLabel(const char *name,
>      VIR_FREE(ref_name);
>      return ret;
>  }
> +
> +
> +int
> +virSecurityMoveRememberedLabel(const char *name,
> +                               const char *src,
> +                               const char *dst)
> +{
> +    VIR_AUTOFREE(char *) ref_name = NULL;
> +    VIR_AUTOFREE(char *) ref_value = NULL;
> +    VIR_AUTOFREE(char *) attr_name = NULL;
> +    VIR_AUTOFREE(char *) attr_value = NULL;
> +
> +    if (!(ref_name = virSecurityGetRefCountAttrName(name)) |
> +        !(attr_name = virSecurityGetAttrName(name)))
> +        return -1;
> +
> +    if (virFileGetXAttr(src, ref_name, &ref_value) < 0) {
> +        if (errno == ENOSYS || errno == ENOTSUP) {
> +            return -2;
> +        } else if (errno != ENODATA) {
> +            virReportSystemError(errno,
> +                                 _("Unable to get XATTR %s on %s"),
> +                                 ref_name, src);
> +            return -1;
> +        }
> +    }
> +

This and all the other error reporting is redundant after patches #2-4

- Cole




More information about the libvir-list mailing list