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 <volticks@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Jamie 2025-07-14 10:07:47 +01:00 committed by Daniel Kiper
parent 549a9cc372
commit 7debdce1e9

View File

@ -90,7 +90,7 @@ grub_usb_get_string (grub_usb_device_t dev, grub_uint8_t index, int langid,
0x06, (3 << 8) | index, 0x06, (3 << 8) | index,
langid, descstr.length, (char *) descstrp); langid, descstr.length, (char *) descstrp);
if (descstrp->length == 0) if (descstrp->length < 2)
{ {
grub_free (descstrp); grub_free (descstrp);
*string = grub_strdup (""); *string = grub_strdup ("");