s390/ap: fix memory leak in ap_init_qci_info()
authorWei Yongjun <weiyongjun1@huawei.com>
Mon, 14 Nov 2022 11:08:29 +0000 (11:08 +0000)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Wed, 23 Nov 2022 15:26:21 +0000 (16:26 +0100)
If kzalloc() for 'ap_qci_info_old' failed, 'ap_qci_info' shold be
freed before return. Otherwise it is a memory leak.

Link: https://lore.kernel.org/r/20221114110830.542246-1-weiyongjun@huaweicloud.com
Fixes: 283915850a44 ("s390/ap: notify drivers on config changed and scan complete callbacks")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
drivers/s390/crypto/ap_bus.c

index 59ac98f2bd2756fa2cbae94ac11f1301babc9ad7..b02c631f3b71ac93bf9a4d18bfd056f87fb536df 100644 (file)
@@ -233,8 +233,11 @@ static void __init ap_init_qci_info(void)
        if (!ap_qci_info)
                return;
        ap_qci_info_old = kzalloc(sizeof(*ap_qci_info_old), GFP_KERNEL);
-       if (!ap_qci_info_old)
+       if (!ap_qci_info_old) {
+               kfree(ap_qci_info);
+               ap_qci_info = NULL;
                return;
+       }
        if (ap_fetch_qci_info(ap_qci_info) != 0) {
                kfree(ap_qci_info);
                kfree(ap_qci_info_old);