[PATCH] virt-aa-helper: allow common riscv64 loader paths

Jim Fehlig jfehlig at suse.com
Thu Sep 29 21:30:51 UTC 2022


On 9/28/22 06:45, christian.ehrhardt at canonical.com wrote:
> From: Christian Ehrhardt <christian.ehrhardt at canonical.com>
> 
> Riscv64 usually uses u-boot as external -kernel and a loader from
> the open implementation of RISC-V SBI. The paths for those binaries
> as packaged in Debian and Ubuntu are in paths which are usually
> forbidden to be added by the user under /usr/lib...

Do you know if the path is configurable? Are distros free to put those binaries 
where they choose? E.g. /usr/libexec or similar?

Regards,
Jim

> 
> People used to start riscv64 guests only manually via qemu cmdline,
> but trying to encapsulate that via libvirt now causes failures when
> starting the guest due to the apparmor isolation not allowing that:
>     virt-aa-helper: error: skipped restricted file
>     virt-aa-helper: error: invalid VM definition
> 
> Explicitly allow the sub-paths used by u-boot-qemu and opensbi
> under /usr/lib/ as readonly rules.
> 
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt at canonical.com>
> ---
>   src/security/virt-aa-helper.c | 12 +++++++-----
>   1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
> index f338488da3..ceadaef99b 100644
> --- a/src/security/virt-aa-helper.c
> +++ b/src/security/virt-aa-helper.c
> @@ -476,11 +476,13 @@ valid_path(const char *path, const bool readonly)
>           "/initrd",
>           "/initrd.img",
>           "/usr/share/edk2/",
> -        "/usr/share/OVMF/",              /* for OVMF images */
> -        "/usr/share/ovmf/",              /* for OVMF images */
> -        "/usr/share/AAVMF/",             /* for AAVMF images */
> -        "/usr/share/qemu-efi/",          /* for AAVMF images */
> -        "/usr/share/qemu-efi-aarch64/"   /* for AAVMF images */
> +        "/usr/share/OVMF/",                  /* for OVMF images */
> +        "/usr/share/ovmf/",                  /* for OVMF images */
> +        "/usr/share/AAVMF/",                 /* for AAVMF images */
> +        "/usr/share/qemu-efi/",              /* for AAVMF images */
> +        "/usr/share/qemu-efi-aarch64/",      /* for AAVMF images */
> +        "/usr/lib/u-boot/",                  /* u-boot loaders for qemu */
> +        "/usr/lib/riscv64-linux-gnu/opensbi" /* RISC-V SBI implementation */
>       };
>       /* override the above with these */
>       const char * const override[] = {



More information about the libvir-list mailing list