On Wed, Apr 8, 2015 at 1:29 AM, [email protected]
<[email protected]> wrote:
>> On Tue, Apr 7, 2015 at 5:11 AM, Shengzhou Liu
>> <[email protected]> wrote:
>> > In of_property_read_string function, strnlen(prop->value,
>> > prop->length) is always less or equal to prop->length, and we should
>> allow the '=='
>> > condition, so let's remove the original unreasonable condition.
>>
>> I believe we don't want to allow equal because prop->length should
>> include the \0 termination while strnlen will not.
>>
>> Rob
>
> Yes, I thought so, ideally prop->length should be assigned with 
> strlen(value)+1,
> but unfortunately in u-boot and kernel there are too many callers that have 
> prop->length assigned
> with strlen(value) instead of strlen(value)+1, in practice, we can allow 
> equal.

No one should touch prop->length and it comes from the DTB directly.
It doesn't come from strlen.

> For example, in of_property_read_string_helper function, following two lines 
> had been removed by commit 6faa2909871d8937.

I don't have that commit in my tree.

> -       if (strnlen(prop->value, prop->length) >= prop->length)
> -               return -EILSEQ;
>
> So allowing equal should be acceptable, because in this function, the equal 
> can't prevent stack overflow issue.

What stack overflow issue?

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to