grub/grub-core/kern
Michael Chang 35e918e7c9 efi: Fix gcc9 error -Waddress-of-packed-member
The address of fp->path_name could be unaligned since seeking into the
device path buffer for a given node could end in byte boundary.

The fix is allocating aligned buffer by grub_malloc for holding the
UTF16 string copied from fp->path_name, and after using that buffer as
argument for grub_utf16_to_utf8 to convert it to UTF8 string.

[  255s] ../../grub-core/kern/efi/efi.c: In function 'grub_efi_get_filename':
[  255s] ../../grub-core/kern/efi/efi.c:410:60: error: taking address of packed member of 'struct grub_efi_file_path_device_path' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[  255s]   410 |    p = (char *) grub_utf16_to_utf8 ((unsigned char *) p, fp->path_name, len);
[  255s]       |                                                          ~~^~~~~~~~~~~
[  255s] ../../grub-core/kern/efi/efi.c: In function 'grub_efi_print_device_path':
[  255s] ../../grub-core/kern/efi/efi.c:900:33: error: taking address of packed member of 'struct grub_efi_file_path_device_path' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[  255s]   900 |     *grub_utf16_to_utf8 (buf, fp->path_name,
[  255s]       |                               ~~^~~~~~~~~~~

Signed-off-by: Michael Chang <mchang@suse.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
2020-09-21 20:05:48 -04:00
..
arm arm: Delete unused efi support from loader/arm 2020-09-21 13:19:10 -04:00
arm64 Fix mingw compilation. 2017-02-03 13:01:34 +01:00
coreboot arm-coreboot: Start new port. 2020-09-21 11:32:45 -04:00
efi efi: Fix gcc9 error -Waddress-of-packed-member 2020-09-21 20:05:48 -04:00
emu Change fs functions to add fs_ prefix 2020-09-21 20:05:48 -04:00
generic rtc_get_time_ms.c (grub_rtc_get_time_ms): Avoid division by zero. 2015-01-21 17:42:14 +01:00
i386 verifiers: Core TPM support 2020-09-21 16:43:54 -04:00
ia64 Fix remaining cases of gcc 7 fallthrough warning. 2017-04-12 01:42:38 +00:00
ieee1275 ieee1275: NULL pointer dereference in grub_ieee1275_encode_devname() 2020-09-21 20:00:17 -04:00
mips Fix remaining cases of gcc 7 fallthrough warning. 2017-04-12 01:42:38 +00:00
powerpc Support R_PPC_PLTREL24 2020-09-21 19:37:19 -04:00
riscv RISC-V: Add auxiliary files 2020-09-21 16:43:54 -04:00
sparc64 sparc64: #blocks64 disk node method 2020-09-21 12:16:25 -04:00
uboot uboot: Add the missing disk write operation support 2020-09-21 16:43:54 -04:00
x86_64 x86-64: Treat R_X86_64_PLT32 as R_X86_64_PC32 2019-10-24 16:59:37 +02:00
xen xen: Add basic hooks for PVH in current code 2020-09-21 13:57:20 -04:00
acpi.c Make grub_acpi_find_fadt accessible generically 2016-02-12 11:35:48 +01:00
command.c Remove prio_list 2012-02-12 03:52:17 +01:00
compiler-rt.c sparc: Enable __clzsi2() and __clzdi2() 2020-09-21 19:37:19 -04:00
corecmd.c Change fs functions to add fs_ prefix 2020-09-21 20:05:48 -04:00
device.c Remove nested functions from device iterators. 2013-01-20 15:52:15 +00:00
disk.c Rename grub_disk members 2020-09-21 19:37:19 -04:00
disk_common.c * grub-core/kern/disk_common.c: Clump disk size to 1EiB. 2014-08-10 11:27:36 +02:00
dl.c RISC-V: Add awareness for RISC-V reloations 2020-09-21 16:43:54 -04:00
elf.c verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
elfXX.c kern/elf: fix unintended sign extension 2016-01-09 19:41:26 +03:00
env.c * grub-core/kern/env.c, include/grub/env.h: Change iterator through 2013-03-03 01:34:27 +01:00
err.c * grub-core/kern/misc.c (grub_abort): Make static 2013-10-27 14:13:39 +01:00
file.c Change fs functions to add fs_ prefix 2020-09-21 20:05:48 -04:00
fs.c Change fs functions to add fs_ prefix 2020-09-21 20:05:48 -04:00
list.c Remove prio_list. 2012-02-26 22:49:24 +01:00
main.c set cmddevice when cmdpath is set 2016-06-01 13:55:45 -07:00
misc.c strtoull: Fix behaviour on chars between '9' and 'a'. 2020-09-21 11:32:45 -04:00
mm.c mm: Avoid integer overflow. 2016-02-17 18:09:44 +01:00
parser.c kernel: print and reset grub_errno after each embedded config line 2015-12-16 21:20:30 +03:00
partition.c Remove nested functions from device iterators. 2013-01-20 15:52:15 +00:00
rescue_parser.c rescue_parser: restructure code to avoid Coverity false positive 2016-01-09 18:15:27 +03:00
rescue_reader.c Remove nested functions from script reading and parsing. 2013-01-15 12:03:25 +00:00
term.c Lift 255x255 erminal sie restriction to 65535x65535. Also change from 2013-10-19 23:59:32 +02:00
time.c automake commit without merge history 2010-05-06 11:34:04 +05:30
tpm.c verifiers: Core TPM support 2020-09-21 16:43:54 -04:00
vga_init.c * grub-core/kern/vga_init.c: Fix compilation on qemu-mips. 2013-08-14 09:50:57 +02:00