diff options
author | Matthew Raybuck <matthew.raybuck@ibm.com> | 2019-06-21 15:38:46 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-06-25 11:47:07 -0500 |
commit | 94e392de6a0a2dfb7426021491def8b13e3e01ec (patch) | |
tree | 51b783e6f890e3d16abb03a632c1da4c74d87881 /src | |
parent | 1b06c4f813fd7a8395ccfc93c9dea9b22dd488f1 (diff) | |
download | talos-hostboot-94e392de6a0a2dfb7426021491def8b13e3e01ec.tar.gz talos-hostboot-94e392de6a0a2dfb7426021491def8b13e3e01ec.zip |
Fix memory leak in nvdimm_update.C
Change-Id: I9e5574680ec0e48df560a72844cab3a641e14dd1
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79351
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Roland Veloz <rveloz@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/isteps/nvdimm/nvdimm_update.C | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/usr/isteps/nvdimm/nvdimm_update.C b/src/usr/isteps/nvdimm/nvdimm_update.C index 2f50c11b0..0a319360b 100644 --- a/src/usr/isteps/nvdimm/nvdimm_update.C +++ b/src/usr/isteps/nvdimm/nvdimm_update.C @@ -1939,6 +1939,10 @@ bool NvdimmsUpdate::runUpdate(void) ERRL_GETPLID_SAFE(l_err)); commitPredictiveNvdimmError(l_err); o_no_error_found = false; + + // Delete the unused NvdimmInstalledImage pointer + delete l_installed_image; + continue; } @@ -1991,6 +1995,10 @@ bool NvdimmsUpdate::runUpdate(void) l_err->addProcedureCallout( HWAS::EPUB_PRC_HB_CODE, HWAS::SRCI_PRIORITY_LOW ); ERRORLOG::errlCommit(l_err, NVDIMM_COMP_ID); + + // Delete the unused NvdimmInstalledImage object + delete l_installed_image; + continue; } } @@ -2072,6 +2080,16 @@ bool NvdimmsUpdate::runUpdate(void) } } while (0); // end of flash update section + // Clean up the pointers used in v_NVDIMM_16GB_list and v_NVDIMM_32GB_list + for (const auto& pInstalledImage : v_NVDIMM_16GB_list) + { + delete pInstalledImage; + } + for (const auto& pInstalledImage : v_NVDIMM_32GB_list) + { + delete pInstalledImage; + } + return o_no_error_found; } |