
From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> mainline inclusion from mainline-v5.16-rc5 commit 4cd8371a234d051f9c9557fcbb1f8c523b1c0d10 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9S23J CVE: CVE-2021-47518 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?i... -------------------------------- The done() netlink callback nfc_genl_dump_ses_done() should check if received argument is non-NULL, because its allocation could fail earlier in dumpit() (nfc_genl_dump_ses()). Fixes: ac22ac466a65 ("NFC: Add a GET_SE netlink API") Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Link: https://lore.kernel.org/r/20211209081307.57337-1-krzysztof.kozlowski@canonic... Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Luo Gengkun <luogengkun2@huawei.com> --- net/nfc/netlink.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c index a3685c64002c..26f7703a8b62 100644 --- a/net/nfc/netlink.c +++ b/net/nfc/netlink.c @@ -1415,8 +1415,10 @@ static int nfc_genl_dump_ses_done(struct netlink_callback *cb) { struct class_dev_iter *iter = (struct class_dev_iter *) cb->args[0]; - nfc_device_iter_exit(iter); - kfree(iter); + if (iter) { + nfc_device_iter_exit(iter); + kfree(iter); + } return 0; } -- 2.34.1