grub/grub-core
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
..
boot A workaround for clang problem assembling startup_raw.S 2020-09-21 20:00:17 -04:00
bus ehci: Fix compilation on i386 2020-09-21 11:32:45 -04:00
commands usbtest: Disable gcc9 -Waddress-of-packed-member 2020-09-21 20:05:48 -04:00
disk efidisk: NULL pointer dereference in grub_efidisk_get_device_name() 2020-09-21 19:37:19 -04:00
efiemu asm: Replace "__asm__ __volatile__" with "asm volatile" 2020-09-21 16:44:29 -04:00
font verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
fs hfsplus: Fix gcc9 error with -Waddress-of-packed-member 2020-09-21 20:05:48 -04:00
gdb i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03:00
gettext verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
gfxmenu verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
hello * grub-core/commands/gptsync.c: Fix typographic quoting. 2012-03-03 13:05:08 +01:00
hook * grub-core/hook/datehook.c (grub_read_hook_datetime): Small stylistic 2011-11-11 21:03:49 +01:00
io Change fs functions to add fs_ prefix 2020-09-21 20:05:48 -04:00
kern efi: Fix gcc9 error -Waddress-of-packed-member 2020-09-21 20:05:48 -04:00
lib Change fs functions to add fs_ prefix 2020-09-21 20:05:48 -04:00
loader chainloader: Fix gcc9 error -Waddress-of-packed-member 2020-09-21 20:05:48 -04:00
mmap xen: Prepare common code for Xen PVH support 2020-09-21 13:46:35 -04:00
net Change fs functions to add fs_ prefix 2020-09-21 20:05:48 -04:00
normal Change fs functions to add fs_ prefix 2020-09-21 20:05:48 -04:00
osdep getroot: Save/restore CWD more reliably on Unix 2020-09-21 19:37:19 -04:00
partmap msdos: Fix overflow in converting partition start and length into 512B blocks 2020-09-21 13:29:05 -04:00
parttool * grub-core/net/http.c: Add TRANSLATORS comments. 2012-03-05 16:42:26 +01:00
script verifiers: Core TPM support 2020-09-21 16:43:54 -04:00
term efi/console: Fix the "enter" key not working on x86 tablets 2020-09-21 13:19:10 -04:00
tests Regenerate checksum.h with newer unifont. 2020-09-21 12:02:37 -04:00
video verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
gdb_grub.in * grub-core/gdb_grub.in: Fix overflow and wrong field. 2013-10-14 03:40:20 +02:00
genemuinit.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genemuinitheader.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genmod.sh.in .mod files: Strip annobin annotations and .eh_frame, and their relocations 2020-09-21 12:16:25 -04:00
genmoddep.awk enforcing fixup 2020-09-21 12:02:37 -04:00
gensyminfo.sh.in Fix shebang for termux. 2020-09-21 11:32:45 -04:00
gensymlist.sh Make 'make check' work on emu. 2013-04-27 02:00:16 +02:00
gentrigtables.c * grub-core/gentrigtables.c: Make tables const. 2013-03-01 11:15:09 +01:00
gmodule.pl.in * grub-core/gmodule.pl.in: Accept newer binutils which output 2014-09-21 18:23:23 +02:00
Makefile.am RISC-V: Add to build system 2020-09-21 16:43:54 -04:00
Makefile.core.def ieee1275: Include a.out header in assembly of sparc64 boot loader 2020-09-21 19:37:19 -04:00
modinfo.sh.in Fix shebang for termux. 2020-09-21 11:32:45 -04:00