efi_loader: parameters of CopyMem and SetMem
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 5 Oct 2017 14:35:52 +0000 (16:35 +0200)
committerAlexander Graf <agraf@suse.de>
Mon, 9 Oct 2017 05:00:29 +0000 (07:00 +0200)
The UEFI spec defines the length parameters of CopyMem and SetMem
as UINTN. We should size_t here.

The source buffer of CopyMem should be marked as const.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
include/efi_api.h
lib/efi_loader/efi_boottime.c

index c3b9032a48d2919d6c0cf5a673bc9319f6a5ce1f..0b1a383e6106e54c0c9709a83daa1f9a36725fa4 100644 (file)
@@ -156,10 +156,9 @@ struct efi_boot_services {
                        void *handle, ...);
        efi_status_t (EFIAPI *calculate_crc32)(void *data,
                        unsigned long data_size, uint32_t *crc32);
-       void (EFIAPI *copy_mem)(void *destination, void *source,
-                       unsigned long length);
-       void (EFIAPI *set_mem)(void *buffer, unsigned long size,
-                       uint8_t value);
+       void (EFIAPI *copy_mem)(void *destination, const void *source,
+                       size_t length);
+       void (EFIAPI *set_mem)(void *buffer, size_t size, uint8_t value);
        void *create_event_ex;
 };
 
index b8b98f2c4af48aa1c2a2aae5565cb59e665a3df3..c48ff2cd2a815f8ad4f27ffa7c31292e018e0821 100644 (file)
@@ -1863,10 +1863,10 @@ static efi_status_t EFIAPI efi_calculate_crc32(void *data,
  * @source             source of the copy operation
  * @length             number of bytes to copy
  */
-static void EFIAPI efi_copy_mem(void *destination, void *source,
-                               unsigned long length)
+static void EFIAPI efi_copy_mem(void *destination, const void *source,
+                               size_t length)
 {
-       EFI_ENTRY("%p, %p, %ld", destination, source, length);
+       EFI_ENTRY("%p, %p, %ld", destination, source, (unsigned long)length);
        memcpy(destination, source, length);
        EFI_EXIT(EFI_SUCCESS);
 }
@@ -1882,9 +1882,9 @@ static void EFIAPI efi_copy_mem(void *destination, void *source,
  * @size               size of buffer in bytes
  * @value              byte to copy to the buffer
  */
-static void EFIAPI efi_set_mem(void *buffer, unsigned long size, uint8_t value)
+static void EFIAPI efi_set_mem(void *buffer, size_t size, uint8_t value)
 {
-       EFI_ENTRY("%p, %ld, 0x%x", buffer, size, value);
+       EFI_ENTRY("%p, %ld, 0x%x", buffer, (unsigned long)size, value);
        memset(buffer, value, size);
        EFI_EXIT(EFI_SUCCESS);
 }