From: Jamie Date: Mon, 14 Jul 2025 09:07:47 +0000 (+0100) Subject: commands/usbtest: Ensure string length is sufficient in usb string processing X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7debdce1e98907e65223a4b4c53a41345ac45e53;p=thirdparty%2Fgrub.git commands/usbtest: Ensure string length is sufficient in usb string processing If descstrp->length is less than 2 this will result in underflow in "descstrp->length / 2 - 1" math. Let's fix the check to make sure the value is sufficient. Signed-off-by: Jamie Reviewed-by: Daniel Kiper --- diff --git a/grub-core/commands/usbtest.c b/grub-core/commands/usbtest.c index 8ef187a9a..3184ac9af 100644 --- a/grub-core/commands/usbtest.c +++ b/grub-core/commands/usbtest.c @@ -90,7 +90,7 @@ grub_usb_get_string (grub_usb_device_t dev, grub_uint8_t index, int langid, 0x06, (3 << 8) | index, langid, descstr.length, (char *) descstrp); - if (descstrp->length == 0) + if (descstrp->length < 2) { grub_free (descstrp); *string = grub_strdup ("");