> On Tue, Apr 7, 2015 at 5:11 AM, Shengzhou Liu > <Shengzhou.Liu@xxxxxxxxxxxxx> 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. For example, in of_property_read_string_helper function, following two lines had been removed by commit 6faa2909871d8937. - 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. ��.n��������+%������w��{.n����z�{��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f