grub/grub-core/kern
Michael Chang 4dd4ceec02 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>
2019-04-23 11:37:08 +02:00
..
arm arm: Delete unused efi support from loader/arm 2018-07-25 14:18:11 +02:00
arm64 Fix mingw compilation. 2017-02-03 13:01:34 +01:00
coreboot arm-coreboot: Start new port. 2017-05-08 20:53:28 +02:00
efi efi: Fix gcc9 error -Waddress-of-packed-member 2019-04-23 11:37:08 +02:00
emu Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10: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 2018-12-12 14:51:26 +01: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() 2019-04-04 18:34:05 +02:00
mips Fix remaining cases of gcc 7 fallthrough warning. 2017-04-12 01:42:38 +00:00
powerpc Support R_PPC_PLTREL24 2019-03-25 15:08:49 +01:00
riscv RISC-V: Add auxiliary files 2019-02-25 14:01:59 +01:00
sparc64 sparc64: #blocks64 disk node method 2018-03-05 15:26:36 +01:00
uboot uboot: Add the missing disk write operation support 2019-01-22 15:23:51 +01:00
x86_64 x86-64: Treat R_X86_64_PLT32 as R_X86_64_PC32 2018-02-23 22:25:30 +01:00
xen xen: Add basic hooks for PVH in current code 2018-12-12 12:03:27 +01: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() 2019-03-20 11:38:28 +01:00
corecmd.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
device.c Remove nested functions from device iterators. 2013-01-20 15:52:15 +00:00
disk.c Rename grub_disk members 2019-03-25 15:14:52 +01: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 2019-02-25 11:34:09 +01:00
elf.c verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01: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 2019-04-09 10:03:29 +10:00
fs.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
list.c Remove prio_list. 2012-02-26 22:49:24 +01:00
main.c * grub-core/kern/main.c (grub_set_prefix_and_root): Set variable 2013-11-14 15:53:32 +01:00
misc.c strtoull: Fix behaviour on chars between '9' and 'a'. 2017-05-03 12:59:58 +02: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
vga_init.c * grub-core/kern/vga_init.c: Fix compilation on qemu-mips. 2013-08-14 09:50:57 +02:00