[U-Boot] [PATCH 4/4] dm: simplify the loop in lists_driver_lookup_name()
Simon Glass
sjg at chromium.org
Fri Oct 10 04:42:28 CEST 2014
On 28 September 2014 12:49, Igor Grinberg <grinberg at compulab.co.il> wrote:
> Hi Masahiro, Simon,
>
> On 09/28/14 18:22, Simon Glass wrote:
>> Hi Masahiro,
>>
>> On 28 September 2014 07:52, Masahiro Yamada <yamada.m at jp.panasonic.com> wrote:
>>> if (strncmp(name, entry->name, len))
>>> continue;
>>>
>>> /* Full match */
>>> if (len == strlen(entry->name))
>>> return entry;
>>>
>>> is equivalent to:
>>>
>>> if (!strcmp(name, entry->name))
>>> return entry;
>>>
>>> The latter is simpler.
>>>
>>> Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
>>> ---
>>>
>>> drivers/core/lists.c | 9 +--------
>>> 1 file changed, 1 insertion(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/core/lists.c b/drivers/core/lists.c
>>> index 699f94b..3a1ea85 100644
>>> --- a/drivers/core/lists.c
>>> +++ b/drivers/core/lists.c
>>> @@ -24,19 +24,12 @@ struct driver *lists_driver_lookup_name(const char *name)
>>> ll_entry_start(struct driver, driver);
>>> const int n_ents = ll_entry_count(struct driver, driver);
>>> struct driver *entry;
>>> - int len;
>>>
>>> if (!drv || !n_ents)
>>> return NULL;
>>>
>>> - len = strlen(name);
>>> -
>>> for (entry = drv; entry != drv + n_ents; entry++) {
>>> - if (strncmp(name, entry->name, len))
>>> - continue;
>>> -
>>> - /* Full match */
>>> - if (len == strlen(entry->name))
>>> + if (!strcmp(name, entry->name))
>>> return entry;
>>> }
>>
>> The discussion on this was here:
>>
>> http://lists.denx.de/pipermail/u-boot/2014-September/189336.html
>>
>> I don't see a lot of value in the extra code, so I think we should
>> take this patch. If it is found to be a problem, we can go back to the
>> defensive code and add a test case so it is clear what exactly we are
>> defending against.
>>
>> Acked-by: Simon Glass <sjg at chromium.org>
>>
>
> Following the discussion referenced above, we have here a classic
> case of C language strings problem.
> One can dig about it all over the Internet (for example here [1]).
> I don't think we will invent a solution for that problem here.
> Also we are not about to abandon the C language...
> So, unless someone comes out with a real case to solve, I think
> we should merge this.
>
> Acked-by: Igor Grinberg <grinberg at compulab.co.il>
Applied to u-boot-dm/next, thanks!
>
> [1] http://www.sei.cmu.edu/library/abstracts/news-at-sei/feature120061.cfm
>
>
>
> --
> Regards,
> Igor.
More information about the U-Boot
mailing list