diff options
author | Arvind Yadav <arvind.yadav.cs@gmail.com> | 2017-09-21 13:16:56 +0300 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2017-09-21 13:18:44 +0300 |
commit | 75f029c3a83f3e7a1d0d928efa4fe47dd6a8a9eb (patch) | |
tree | eb03274258a15fc3c08963a1b6cdb8b24c4811ef /drivers/edac/skx_edac.c | |
parent | 2bd6bf03f4c1c59381d62c61d03f6cc3fe71f66e (diff) | |
download | linux-75f029c3a83f3e7a1d0d928efa4fe47dd6a8a9eb.tar.xz |
EDAC: Handle return value of kasprintf()
kasprintf() can fail and we must check its return value.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Cc: linux-edac@vger.kernel.org
[ Merged into a single patch, small formatting fixups. ]
Signed-off-by: Borislav Petkov <bp@suse.de>
Diffstat (limited to 'drivers/edac/skx_edac.c')
-rw-r--r-- | drivers/edac/skx_edac.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/edac/skx_edac.c b/drivers/edac/skx_edac.c index 16dea97568a1..3fe85b0ac274 100644 --- a/drivers/edac/skx_edac.c +++ b/drivers/edac/skx_edac.c @@ -464,8 +464,12 @@ static int skx_register_mci(struct skx_imc *imc) pvt = mci->pvt_info; pvt->imc = imc; - mci->ctl_name = kasprintf(GFP_KERNEL, "Skylake Socket#%d IMC#%d", - imc->node_id, imc->lmc); + mci->ctl_name = kasprintf(GFP_KERNEL, "Skylake Socket#%d IMC#%d", imc->node_id, imc->lmc); + if (!mci->ctl_name) { + rc = -ENOMEM; + goto fail0; + } + mci->mtype_cap = MEM_FLAG_DDR4; mci->edac_ctl_cap = EDAC_FLAG_NONE; mci->edac_cap = EDAC_FLAG_NONE; @@ -491,6 +495,7 @@ static int skx_register_mci(struct skx_imc *imc) fail: kfree(mci->ctl_name); +fail0: edac_mc_free(mci); imc->mci = NULL; return rc; |