The patch titled Subject: hfs: do not free node before using has been added to the -mm tree. Its filename is hfs-do-not-free-node-before-using.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/hfs-do-not-free-node-before-using.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/hfs-do-not-free-node-before-using.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Pan Bian <bianpan2016@xxxxxxx> Subject: hfs: do not free node before using hfs_bmap_free() frees the node via hfs_bnode_put(node). However, it then reads node->this when dumping error message on an error path, which may result in a use-after-free bug. This patch frees the node only when it is never again used. Link: http://lkml.kernel.org/r/1542963889-128825-1-git-send-email-bianpan2016@xxxxxxx Fixes: d614267329f("hfs/hfsplus: convert printks to pr_<level>") Signed-off-by: Pan Bian <bianpan2016@xxxxxxx> Reviewed-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Cc: Joe Perches <joe@xxxxxxxxxxx> Cc: Ernesto A. Fernandez <ernesto.mnd.fernandez@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- --- a/fs/hfs/btree.c~hfs-do-not-free-node-before-using +++ a/fs/hfs/btree.c @@ -338,13 +338,14 @@ void hfs_bmap_free(struct hfs_bnode *nod nidx -= len * 8; i = node->next; - hfs_bnode_put(node); if (!i) { /* panic */; pr_crit("unable to free bnode %u. bmap not found!\n", node->this); + hfs_bnode_put(node); return; } + hfs_bnode_put(node); node = hfs_bnode_find(tree, i); if (IS_ERR(node)) return; _ Patches currently in -mm which might be from bianpan2016@xxxxxxx are hfs-do-not-free-node-before-using.patch