]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
hw/uefi: check access for first variable
authorGerd Hoffmann <kraxel@redhat.com>
Mon, 11 Aug 2025 13:01:09 +0000 (15:01 +0200)
committerMichael Tokarev <mjt@tls.msk.ru>
Thu, 14 Aug 2025 06:13:13 +0000 (09:13 +0300)
When listing variables (via get-next-variable-name) only the names of
variables which can be accessed will be returned.  That check was
missing for the first variable though.  Add it.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-ID: <20250811130110.820958-3-kraxel@redhat.com>
(cherry picked from commit fc8ee8fe58ad410f27fca64e4ad212c5a3eabe00)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/uefi/var-service-vars.c

index 58ae560d6e5c4d09c4e3a40e7ef5d48cfd2a3065..e382fb2813d20b1b380d8bcb5ffaffff4ce04633 100644 (file)
@@ -357,6 +357,9 @@ uefi_vars_mm_get_next_variable(uefi_vars_state *uv, mm_header *mhdr,
     if (uefi_strlen(name, nv->name_size) == 0) {
         /* empty string -> first */
         var = QTAILQ_FIRST(&uv->variables);
+        while (var && !check_access(uv, var)) {
+            var = QTAILQ_NEXT(var, next);
+        }
         if (!var) {
             return uefi_vars_mm_error(mhdr, mvar, EFI_NOT_FOUND);
         }