
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