mirror of
https://git.proxmox.com/git/grub2
synced 2025-07-24 17:01:34 +00:00
script/execute: Avoid crash when using "$#" outside a function scope
"$#" represents the number of arguments to a function. It is only defined in a function scope, where "scope" is non-NULL. Currently, if we attempt to evaluate "$#" outside a function scope, "scope" will be NULL and we will crash with a NULL pointer dereference. Do not attempt to count arguments for "$#" if "scope" is NULL. This will result in "$#" being interpreted as an empty string if evaluated outside a function scope. Signed-off-by: Daniel Axtens <dja@axtens.net> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
6afbe6063c
commit
fe0586347e
@ -485,7 +485,7 @@ gettext_putvar (const char *str, grub_size_t len,
|
||||
return 0;
|
||||
|
||||
/* Enough for any number. */
|
||||
if (len == 1 && str[0] == '#')
|
||||
if (len == 1 && str[0] == '#' && scope != NULL)
|
||||
{
|
||||
grub_snprintf (*ptr, 30, "%u", scope->argv.argc);
|
||||
*ptr += grub_strlen (*ptr);
|
||||
|
Loading…
Reference in New Issue
Block a user