On Tue, Aug 22, 2023 at 11:39:12PM +0200, Vitaly Kuzmichev wrote: > Fix comparison of two identical UUID strings ending with dash '-'. > > In this case grub_uuidcasecmp() passes through the null terminators > and actual result depends on whatever garbage follows them. > > So break immediately when it reaches the end in any of the strings > after a dash character '-'. > > Signed-off-by: Vitaly Kuzmichev <vitaly.kuzmic...@rtsoft.de> > --- > include/grub/misc.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/grub/misc.h b/include/grub/misc.h > index 1b35a167f..12fade5de 100644 > --- a/include/grub/misc.h > +++ b/include/grub/misc.h > @@ -264,7 +264,8 @@ grub_uuidcasecmp (const char *uuid1, const char *uuid2, > grub_size_t n) > while ('-' == *uuid2) > ++uuid2; > > - if (grub_tolower ((grub_uint8_t) *uuid1) != grub_tolower > ((grub_uint8_t) *uuid2)) > + if (!*uuid1 || !*uuid2 ||
I prefer if (*uuid1 != '\0' || *uuid2 != '\0' || ... ... if it is what you meant... If you are OK with that change you get Reviewed-by: Daniel Kiper <daniel.ki...@oracle.com>... > + grub_tolower ((grub_uint8_t) *uuid1) != grub_tolower ((grub_uint8_t) > *uuid2)) > break; Daniel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel