summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/variables.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/variables.c b/lib/variables.c
index 8123ae60..5d909184 100644
--- a/lib/variables.c
+++ b/lib/variables.c
@@ -245,7 +245,11 @@ get_variable_attr(CHAR16 *var, UINT8 **data, UINTN *len, EFI_GUID owner,
return efi_status;
}
- *data = AllocateZeroPool(*len);
+ /*
+ * Add three zero pad bytes; at least one correctly aligned UCS-2
+ * character.
+ */
+ *data = AllocateZeroPool(*len + 3);
if (!*data)
return EFI_OUT_OF_RESOURCES;
@@ -254,6 +258,7 @@ get_variable_attr(CHAR16 *var, UINT8 **data, UINTN *len, EFI_GUID owner,
FreePool(*data);
*data = NULL;
}
+
return efi_status;
}