summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBorislav Petkov <borislav.petkov@amd.com>2011-03-29 16:10:53 (GMT)
committerBorislav Petkov <borislav.petkov@amd.com>2011-03-29 16:19:06 (GMT)
commita9f0fbe2bbf328f869fc5ee5a12c6a4118c32689 (patch)
tree819fdfb4224ac19a61cb2cd7c7f5a8907306ee82
parent89078d572eb9ce8d4c04264b8b0ba86de0d74c8f (diff)
downloadlinux-3.10-a9f0fbe2bbf328f869fc5ee5a12c6a4118c32689.zip
linux-3.10-a9f0fbe2bbf328f869fc5ee5a12c6a4118c32689.tar.gz
linux-3.10-a9f0fbe2bbf328f869fc5ee5a12c6a4118c32689.tar.bz2
amd64_edac: Fix potential memleak
We check the pointers together but at least one of them could be invalid due to failed allocation. Since we cannot continue if either of the two allocations has failed, exit early by freeing them both. Cc: <stable@kernel.org> # 38.x Reported-by: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
-rw-r--r--drivers/edac/amd64_edac.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index 0be30e9..31e71c4f 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -2679,7 +2679,7 @@ static int __init amd64_edac_init(void)
mcis = kzalloc(amd_nb_num() * sizeof(mcis[0]), GFP_KERNEL);
ecc_stngs = kzalloc(amd_nb_num() * sizeof(ecc_stngs[0]), GFP_KERNEL);
if (!(mcis && ecc_stngs))
- goto err_ret;
+ goto err_free;
msrs = msrs_alloc();
if (!msrs)