Skip to content

Commit

Permalink
ubifs: Fail commit if TNC is obviously inconsistent
Browse files Browse the repository at this point in the history
A reference to LEB 0 or with length 0 in the TNC
is never correct and could be caused by a memory corruption.
Don't write such a bad index node to the MTD.
Instead fail the commit which will turn UBIFS into read-only mode.

This is less painful than having the bad reference on the MTD
from where UBFIS has no chance to recover.

Signed-off-by: Richard Weinberger <[email protected]>
  • Loading branch information
richardweinberger committed Jul 14, 2017
1 parent 319c104 commit df71b09
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions fs/ubifs/tnc_commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ static int make_idx_node(struct ubifs_info *c, struct ubifs_idx_node *idx,
ubifs_dump_znode(c, znode);
if (zbr->znode)
ubifs_dump_znode(c, zbr->znode);

return -EINVAL;
}
}
ubifs_prepare_node(c, idx, len, 0);
Expand Down Expand Up @@ -859,6 +861,8 @@ static int write_index(struct ubifs_info *c)
ubifs_dump_znode(c, znode);
if (zbr->znode)
ubifs_dump_znode(c, zbr->znode);

return -EINVAL;
}
}
len = ubifs_idx_node_sz(c, znode->child_cnt);
Expand Down

0 comments on commit df71b09

Please sign in to comment.