[U-Boot] [PATCH 04/10] g_dnl: Properly terminate string list.

Pantelis Antoniou panto at antoniou-consulting.com
Thu Nov 29 14:22:43 CET 2012


Hi Marek,

On Nov 29, 2012, at 10:20 AM, Marek Vasut wrote:

> Dear Pantelis Antoniou,
> 
>> Well, not terminating the list causes very interesting crashes.
>> As in changing the vendor & product ID crashes. Fun.
>> 
>> Signed-off-by: Pantelis Antoniou <panto at antoniou-consulting.com>
>> ---
>> drivers/usb/gadget/g_dnl.c | 1 +
>> 1 file changed, 1 insertion(+)
>> 
>> diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
>> index 25da733..a5a4c1f 100644
>> --- a/drivers/usb/gadget/g_dnl.c
>> +++ b/drivers/usb/gadget/g_dnl.c
>> @@ -69,6 +69,7 @@ static struct usb_device_descriptor device_desc = {
>> static struct usb_string[] = {
>> 	{ 0, manufacturer, },
>> 	{ 1, product, },
>> +	{  }		/* end of list */
> 
> So you're adding an uninited entry here? How'll this work?
> 

This is very common idiom. It's not uninitialized, all the members are
set to 0, including the char * members.

It is exactly the same method used in drivers/usb/gadget/ether.c

>> };
>> 
>> static struct usb_gadget_strings g_dnl_string_tab = {
> 
> Best regards,
> Marek Vasut


Regards

-- Pantelis



More information about the U-Boot mailing list