Skip to content

Commit 0ff7c44

Browse files
Haoxiang Libp3tk0v
authored andcommitted
EDAC/x38: Fix a resource leak in x38_probe1()
If edac_mc_alloc() fails, also unmap the window. [ bp: Use separate labels, turning it into the classic unwind pattern. ] Fixes: df8bc08 ("edac x38: new MC driver module") Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Cc: stable@vger.kernel.org Link: https://patch.msgid.link/20251223124350.1496325-1-lihaoxiang@isrc.iscas.ac.cn
1 parent d42d571 commit 0ff7c44

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

drivers/edac/x38_edac.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -341,9 +341,12 @@ static int x38_probe1(struct pci_dev *pdev, int dev_idx)
341341
layers[1].type = EDAC_MC_LAYER_CHANNEL;
342342
layers[1].size = x38_channel_num;
343343
layers[1].is_virt_csrow = false;
344+
345+
346+
rc = -ENOMEM;
344347
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 0);
345348
if (!mci)
346-
return -ENOMEM;
349+
goto unmap;
347350

348351
edac_dbg(3, "MC: init mci\n");
349352

@@ -403,9 +406,9 @@ static int x38_probe1(struct pci_dev *pdev, int dev_idx)
403406
return 0;
404407

405408
fail:
409+
edac_mc_free(mci);
410+
unmap:
406411
iounmap(window);
407-
if (mci)
408-
edac_mc_free(mci);
409412

410413
return rc;
411414
}

0 commit comments

Comments
 (0)