On Mon, Nov 17, 2025 at 06:06:22PM +0100, Daniel Kiper wrote: > On Tue, Nov 11, 2025 at 02:49:20PM +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_ERR_BAD_NUMBER or > > GRUB_ERR_OUT_OF_RANGE is encountered. This ensures that the error is > > handled as false return and no grub_errno leakage. > > > > Signed-off-by: Michael Chang <[email protected]> > > Reviewed-by: Sudhakar Kuppusamy <[email protected]> > > Reviewed-by: Avnish Chouhan <[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..8a3446336 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_BAD_NUMBER || grub_errno == > > GRUB_ERR_OUT_OF_RANGE) > > + { > > + grub_errno = GRUB_ERR_NONE; > > + return false; > > + } > > I would unconditionally reset grub_errno to GRUB_ERR_NONE and be done.
OK. It makes sense to me. Thanks, Michael > > > 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
