Message ID | 549C0A10.3000201@huawei.com |
---|---|
State | RFC |
Headers | show |
diff --git a/fs/ubifs/replay.c b/fs/ubifs/replay.c index 3187925..f13f4b2 100644 --- a/fs/ubifs/replay.c +++ b/fs/ubifs/replay.c @@ -846,7 +846,14 @@ static int replay_log_leb(struct ubifs_info *c, int lnum, int offs, void *sbuf) } if (sleb->nodes_cnt == 0) { - err = 1; + if (unlikely(c->cs_sqnum == 0)) { + /* This is the first log LEB, should not be empty */ + ubifs_err("first log leb LEB %d:%d is empty, no CS node exist", + lnum, offs); + err = -EINVAL; + } else { + err = 1; + } goto out; }
If first log leb which is indicated by @log_lnum in mst_node is empty, current UBIFS will stop finding cs_node and directly mount the partition. This patch fix this problem by checking c->cs_sqnum to guarantee the empty leb is not first log leb and return an error if the first log leb is incorrectly empty. Signed-off-by: hujianyang <hujianyang@huawei.com> --- fs/ubifs/replay.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)