Skip to content

Commit 35c4822

Browse files
btzds258SherryYang1
authored andcommitted
ubifs: skip dumping tnc tree when zroot is null
[ Upstream commit bdb0ca3 ] 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: 1e51764 ("UBIFS: add new flash file system") Signed-off-by: pangliyuan <[email protected]> Reviewed-by: Zhihao Cheng <[email protected]> Signed-off-by: Richard Weinberger <[email protected]> Signed-off-by: Sasha Levin <[email protected]> (cherry picked from commit 428aff8f7cfb0d9a8854477648022cef96bcab28) Signed-off-by: Sherry Yang <[email protected]>
1 parent cf66d4e commit 35c4822

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

fs/ubifs/debug.c

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -925,16 +925,20 @@ void ubifs_dump_tnc(struct ubifs_info *c)
925925

926926
pr_err("\n");
927927
pr_err("(pid %d) start dumping TNC tree\n", current->pid);
928-
znode = ubifs_tnc_levelorder_next(c, c->zroot.znode, NULL);
929-
level = znode->level;
930-
pr_err("== Level %d ==\n", level);
931-
while (znode) {
932-
if (level != znode->level) {
933-
level = znode->level;
934-
pr_err("== Level %d ==\n", level);
928+
if (c->zroot.znode) {
929+
znode = ubifs_tnc_levelorder_next(c, c->zroot.znode, NULL);
930+
level = znode->level;
931+
pr_err("== Level %d ==\n", level);
932+
while (znode) {
933+
if (level != znode->level) {
934+
level = znode->level;
935+
pr_err("== Level %d ==\n", level);
936+
}
937+
ubifs_dump_znode(c, znode);
938+
znode = ubifs_tnc_levelorder_next(c, c->zroot.znode, znode);
935939
}
936-
ubifs_dump_znode(c, znode);
937-
znode = ubifs_tnc_levelorder_next(c, c->zroot.znode, znode);
940+
} else {
941+
pr_err("empty TNC tree in memory\n");
938942
}
939943
pr_err("(pid %d) finish dumping TNC tree\n", current->pid);
940944
}

0 commit comments

Comments
 (0)