Go to file
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
asm-tests asm-tests/i386-pc: Check that movl is 5 bytes. 2016-09-28 20:31:04 +03:00
conf gnulib: Upgrade Gnulib and switch to bootstrap tool 2020-09-21 16:44:29 -04:00
docs docs/grub-dev: Change comments rules 2020-09-21 20:00:17 -04:00
grub-core efi: Fix gcc9 error -Waddress-of-packed-member 2020-09-21 20:05:48 -04:00
include acpi: Fix gcc9 error -Waddress-of-packed-member 2020-09-21 20:05:48 -04:00
po gnulib: Upgrade Gnulib and switch to bootstrap tool 2020-09-21 16:44:29 -04:00
tests syslinux: Fix syslinux_test in out-of-tree builds 2020-09-21 16:43:55 -04:00
themes/starfield Starfield theme. 2012-02-23 17:21:38 +01:00
unicode * unicode: Import Unicode 6.0 data. 2011-12-25 16:17:25 +01:00
util Change fs functions to add fs_ prefix 2020-09-21 20:05:48 -04:00
.gitignore gnulib: Upgrade Gnulib and switch to bootstrap tool 2020-09-21 16:44:29 -04:00
.travis.yml travis: Add Travis CI config file 2020-09-21 16:43:55 -04:00
AUTHORS 2005-09-03 Yoshinori K. Okuji <okuji@enbug.org> 2005-09-03 16:54:27 +00:00
BUGS * BUGS: New file. 2011-01-11 00:06:01 +01:00
COPYING 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org> 2007-07-21 23:32:33 +00:00
ChangeLog-2015 Autogenerate ChangeLog from git changelog. 2015-01-24 17:29:50 +01:00
INSTALL gnulib: Upgrade Gnulib and switch to bootstrap tool 2020-09-21 16:44:29 -04:00
Makefile.am Makefile: Allow to set file systems modules for default_payload.elf 2020-09-21 16:44:29 -04:00
Makefile.util.def gnulib: Upgrade Gnulib and switch to bootstrap tool 2020-09-21 16:44:29 -04:00
NEWS NEWS updates 2016-11-22 20:51:54 +03:00
README README: Remove dead link to the wiki 2015-11-06 04:31:23 +01:00
THANKS 2009-12-11 Robert Millan <rmh.grub@aybabtu.com> 2009-12-11 22:44:47 +00:00
TODO TODO: Remove obsolete link 2016-02-12 17:51:52 +01:00
acinclude.m4 Fix -nopie/-nopie check. 2017-01-30 19:38:55 +01:00
autogen.sh POTFILES: Don't include gnulib in grub.pot 2020-09-21 19:37:19 -04:00
bootstrap gnulib: Upgrade Gnulib and switch to bootstrap tool 2020-09-21 16:44:29 -04:00
bootstrap.conf getroot: Save/restore CWD more reliably on Unix 2020-09-21 19:37:19 -04:00
config.h.in Remove libgcc dependency. 2015-03-03 20:50:37 +01:00
configure.ac Release 2.04~rc1 2020-09-21 20:05:48 -04:00
coreboot.cfg * coreboot.cfg: Add missing file. 2013-11-20 00:52:23 +01:00
geninit.sh automake commit without merge history 2010-05-06 11:34:04 +05:30
gentpl.py RISC-V: Add to build system 2020-09-21 16:43:54 -04:00
linguas.sh linguas: Don't skip ko.po. 2017-02-04 00:06:57 +01:00

README

This is GRUB 2, the second version of the GRand Unified Bootloader.
GRUB 2 is rewritten from scratch to make GNU GRUB cleaner, safer, more
robust, more powerful, and more portable.

See the file NEWS for a description of recent changes to GRUB 2.

See the file INSTALL for instructions on how to build and install the
GRUB 2 data and program files.

Please visit the official web page of GRUB 2, for more information.
The URL is <http://www.gnu.org/software/grub/grub.html>.

More extensive documentation is available in the Info manual,
accessible using 'info grub' after building and installing GRUB 2.

There are a number of important user-visible differences from the
first version of GRUB, now known as GRUB Legacy. For a summary, please
see:

  info grub Introduction 'Changes from GRUB Legacy'