[edk2-devel] [PATCH 07/13] OvmfPkg/QemuKernelLoaderFsDxe: don't expose kernel command line
Laszlo Ersek
lersek at redhat.com
Mon Mar 2 17:31:48 UTC 2020
On 03/02/20 08:29, Ard Biesheuvel wrote:
> We have no need for exposing the kernel command line as a file,
> so remove support for that.
OK
> Since the remaining blobs (kernel
> and initrd) are typically much larger than a page, switch to
> the page based allocator for blobs at the same time.
Not sure why this matters, but I don't mind. However:
>
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2566
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
> ---
> OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c
> index efecbd817da1..b8d64e2781fc 100644
> --- a/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c
> +++ b/OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c
> @@ -30,7 +30,6 @@
> typedef enum {
> KernelBlobTypeKernel,
> KernelBlobTypeInitrd,
> - KernelBlobTypeCommandLine,
> KernelBlobTypeMax
> } KERNEL_BLOB_TYPE;
>
> @@ -45,7 +44,6 @@ typedef struct {
> STATIC KERNEL_BLOB mKernelBlob[KernelBlobTypeMax] = {
> { QemuFwCfgItemKernelSize, QemuFwCfgItemKernelData, L"kernel" },
> { QemuFwCfgItemInitrdSize, QemuFwCfgItemInitrdData, L"initrd" },
> - { QemuFwCfgItemCommandLineSize, QemuFwCfgItemCommandLineData, L"cmdline" }
> };
>
> STATIC UINT64 mTotalBlobBytes;
> @@ -865,7 +863,7 @@ FetchBlob (
> //
> // Read blob.
> //
> - Blob->Data = AllocatePool (Blob->Size);
> + Blob->Data = AllocatePages (EFI_SIZE_TO_PAGES (Blob->Size));
(1) EFI_SIZE_TO_PAGES expects a UINTN, but KERNEL_BLOB.Size is UINT32.
Please cast the argument.
> if (Blob->Data == NULL) {
> DEBUG ((DEBUG_ERROR, "%a: failed to allocate %Ld bytes for \"%s\"\n",
> __FUNCTION__, (INT64)Blob->Size, Blob->Name));
> @@ -969,7 +967,7 @@ QemuKernelLoaderFsDxeEntrypoint (
> while (BlobType > 0) {
> CurrentBlob = &mKernelBlob[--BlobType];
> if (CurrentBlob->Data != NULL) {
> - FreePool (CurrentBlob->Data);
> + FreePages (CurrentBlob->Data, EFI_SIZE_TO_PAGES (CurrentBlob->Size));
(2) Same as (1).
> CurrentBlob->Size = 0;
> CurrentBlob->Data = NULL;
> }
>
With (1) and (2) fixed:
Reviewed-by: Laszlo Ersek <lersek at redhat.com>
Thanks
Laszlo
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#55223): https://edk2.groups.io/g/devel/message/55223
Mute This Topic: https://groups.io/mt/71669020/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list