The function grub_get_node_path() could return uninitialized offset with level == 0 if the block is greater than direct_index + 2 * direct_blks + 2 * indirect_blks + dindirect_blks. The uninitialized offset is then used by function grub_f2fs_get_block() because level == 0 is valid and meaningful return to be processed. The fix is to set level = -1 as return value by grub_get_node_path() to signify an error that the input block cannot be handled. Any caller should therefore check level is negative or not before processing the output. Reported-by: Neil MacLeod <neil@nmacleod.com> Signed-off-by: Michael Chang <mchang@suse.com> Tested-by: Neil MacLeod <neil@nmacleod.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%