Re: [PATCH v3] blsuki: Fix grub_errno leakage in blsuki_is_default_entry()
Daniel Kiper <[email protected]> Wed, 19 Nov 2025 21:26:24 +0100
| Newsgroups | org.gnu.grub-devel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Nov 18, 2025 at 04:04:48PM +0800, Michael Chang via Grub-devel wrote: > The grub_strtol() call in blsuki_is_default_entry() can set grub_errno > to either GRUB_ERR_BAD_NUMBER or GRUB_ERR_OUT_OF_RANGE if the input > string is invalid or out of range. > > This errno value is currently left uncleared, which can lead to > unexpected behavior in subsequent functions that rely on checking > current state of grub_errno. > > Clear grub_errno and return false when grub_strtol() reports error. This > ensures that the error is handled and no grub_errno leakage. > > Signed-off-by: Michael Chang <[email protected]> > Reviewed-by: Sudhakar Kuppusamy <[email protected]> > Reviewed-by: Avnish Chouhan <[email protected]> > Reviewed-by: Alec Brown <[email protected]> > --- > grub-core/commands/blsuki.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/grub-core/commands/blsuki.c b/grub-core/commands/blsuki.c > index 21d767f05..9abb39a74 100644 > --- a/grub-core/commands/blsuki.c > +++ b/grub-core/commands/blsuki.c > @@ -1510,6 +1510,12 @@ blsuki_is_default_entry (const char *def_entry, grub_blsuki_entry_t *entry, int > return true; > > def_idx = grub_strtol (def_entry, &def_entry_end, 0); > + if (grub_errno != GRUB_ERR_NONE) This "if" is not really need. Please drop it. Everything will be caught by the "if" below. > + { > + grub_errno = GRUB_ERR_NONE; > + return false; > + } > + > if (*def_entry_end != '\0' || def_idx < 0 || def_idx > GRUB_INT_MAX) > return false; Daniel _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel