[U-Boot] [PATCH 3/7] JFFS2: Calculate buf_len before we read data from flash

Detlev Zundel dzu at denx.de
Fri Apr 29 19:22:16 CEST 2011


Hi Baidu,

[...]

>>> diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c
>>> index 8eb77b1..be6ac78 100644
>>> --- a/fs/jffs2/jffs2_1pass.c
>>> +++ b/fs/jffs2/jffs2_1pass.c
>>> @@ -1643,6 +1643,8 @@ jffs2_1pass_build_lists(struct part_info * part)
>>>                       case JFFS2_NODETYPE_INODE:
>>>                               if (buf_ofs + buf_len < ofs + sizeof(struct
>>>                                                       jffs2_raw_inode)) {
>>> +                                     buf_len = min_t(uint32_t, buf_size, sector_ofs
>>> +                                             + part->sector_size - ofs);
>>
>> I am somewhat uncomfortable that "buf_len" is used in the if condition
>> before it is recalculated inside.  Are you sure that this cannot lead to
>> problems, i.e. can buf_len become larger than it was when entering the
>> condition?
>
> It works well in my boards.

Aha.  I am all happy for you that this works, but we really need to be
as sure as we can be that the code does the right thing.  "It works for
me" is not enough.

Cheers
  Detlev

-- 
Als ich entführt wurde, begannen meine Eltern aktiv zu werden.
Sie vermieteten mein Zimmer.
                                        -- Woody Allen
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de


More information about the U-Boot mailing list