ubifs: skip dumping tnc tree when zroot is null
Clearing slab cache will free all znode in memory and make
c->zroot.znode = NULL, then dumping tnc tree will access
c->zroot.znode which cause null pointer dereference.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=219624#c0
Fixes: 1e51764a3c
("UBIFS: add new flash file system")
Signed-off-by: pangliyuan <pangliyuan1@huawei.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
844c6fdc13
commit
bdb0ca39e0
|
@ -945,16 +945,20 @@ void ubifs_dump_tnc(struct ubifs_info *c)
|
|||
|
||||
pr_err("\n");
|
||||
pr_err("(pid %d) start dumping TNC tree\n", current->pid);
|
||||
znode = ubifs_tnc_levelorder_next(c, c->zroot.znode, NULL);
|
||||
level = znode->level;
|
||||
pr_err("== Level %d ==\n", level);
|
||||
while (znode) {
|
||||
if (level != znode->level) {
|
||||
level = znode->level;
|
||||
pr_err("== Level %d ==\n", level);
|
||||
if (c->zroot.znode) {
|
||||
znode = ubifs_tnc_levelorder_next(c, c->zroot.znode, NULL);
|
||||
level = znode->level;
|
||||
pr_err("== Level %d ==\n", level);
|
||||
while (znode) {
|
||||
if (level != znode->level) {
|
||||
level = znode->level;
|
||||
pr_err("== Level %d ==\n", level);
|
||||
}
|
||||
ubifs_dump_znode(c, znode);
|
||||
znode = ubifs_tnc_levelorder_next(c, c->zroot.znode, znode);
|
||||
}
|
||||
ubifs_dump_znode(c, znode);
|
||||
znode = ubifs_tnc_levelorder_next(c, c->zroot.znode, znode);
|
||||
} else {
|
||||
pr_err("empty TNC tree in memory\n");
|
||||
}
|
||||
pr_err("(pid %d) finish dumping TNC tree\n", current->pid);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue