The catkey->name could be unaligned since the address of 'void* record' is calculated as offset in bytes to a malloc buffer. The fix is using aligned buffer allocated by grub_malloc for holding the UTF16 string copied from catkey->name. And use that buffer as argument for grub_utf16_to_utf8 to convert to UTF8 strings. In addition, using a new copy of buffer rather than catkey->name itself for processing the endianess conversion, we can also get rid of the hunk restoring byte order of catkey->name to what it was previously. [ 59s] ../grub-core/fs/hfsplus.c: In function 'list_nodes': [ 59s] ../grub-core/fs/hfsplus.c:738:57: error: taking address of packed member of 'struct grub_hfsplus_catkey' may result in an unaligned pointer value [-Werror=address-of-packed-member] [ 59s] 738 | *grub_utf16_to_utf8 ((grub_uint8_t *) filename, catkey->name, [ 59s] | ~~~~~~^~~~~~ [ 59s] ../grub-core/fs/hfsplus.c: In function 'grub_hfsplus_label': [ 59s] ../grub-core/fs/hfsplus.c:1019:57: error: taking address of packed member of 'struct grub_hfsplus_catkey' may result in an unaligned pointer value [-Werror=address-of-packed-member] [ 59s] 1019 | *grub_utf16_to_utf8 ((grub_uint8_t *) (*label), catkey->name, [ 59s] | ~~~~~~^~~~~~ Signed-off-by: Michael Chang <mchang@suse.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
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'
Description
Languages
C
82.5%
Assembly
13.6%
M4
1.4%
Shell
1.3%
Makefile
0.5%
Other
0.5%