diff options
author | Oliver Stöneberg <firewave@users.noreply.github.com> | 2018-01-21 05:24:51 +0100 |
---|---|---|
committer | Vas Crabb <cuavas@users.noreply.github.com> | 2018-01-21 15:24:51 +1100 |
commit | 4e64f9572137929ff87ef47946438366f35e886a (patch) | |
tree | e555e271b04b24df3fa9db2cee0de980456bd9fc | |
parent | 115b7b15a85510ec6714763b67a92cc87c85ca1e (diff) |
Fixes for Coverity "Resource leak" warnings (#3089)
* lib/util/chdcd.cpp: fixed Coverity "Resource Leak" warning (nw)
* src/lib/util/chdcd.cpp: fixed more Coverity "Resource Leak" warnings (nw)
* tools/imgtool/modules/mac.cpp: fixed Coverity "Resource Leak" warnings (nw)
* devices/bus/ti99/gromport/cartridges.cpp: fixed Coverity "Resource Leak" warning (nw)
-rw-r--r-- | src/devices/bus/ti99/gromport/cartridges.cpp | 2 | ||||
-rw-r--r-- | src/lib/util/chdcd.cpp | 4 | ||||
-rw-r--r-- | src/tools/imgtool/modules/mac.cpp | 5 |
3 files changed, 9 insertions, 2 deletions
diff --git a/src/devices/bus/ti99/gromport/cartridges.cpp b/src/devices/bus/ti99/gromport/cartridges.cpp index b4a1669fec3..fd1180bbaa5 100644 --- a/src/devices/bus/ti99/gromport/cartridges.cpp +++ b/src/devices/bus/ti99/gromport/cartridges.cpp @@ -231,7 +231,7 @@ image_init_result ti99_cartridge_device::call_load() } else { - auto reader = new rpk_reader(pcbdefs); + auto reader = std::make_unique<rpk_reader>(pcbdefs); try { m_rpk = reader->open(machine().options(), filename(), machine().system().name); diff --git a/src/lib/util/chdcd.cpp b/src/lib/util/chdcd.cpp index b69195a8a91..63a94ed7d4b 100644 --- a/src/lib/util/chdcd.cpp +++ b/src/lib/util/chdcd.cpp @@ -905,12 +905,14 @@ chd_error chdcd_parse_cue(const char *tocfname, cdrom_toc &outtoc, chdcd_track_i wavlen = parse_wav_sample(lastfname.c_str(), &wavoffs); if (!wavlen) { + fclose(infile); printf("ERROR: couldn't read [%s] or not a valid .WAV\n", lastfname.c_str()); return CHDERR_INVALID_DATA; } } else { + fclose(infile); printf("ERROR: Unhandled track type %s\n", token); return CHDERR_UNSUPPORTED_FORMAT; } @@ -952,6 +954,7 @@ chd_error chdcd_parse_cue(const char *tocfname, cdrom_toc &outtoc, chdcd_track_i cdrom_convert_type_string_to_track_info(token, &outtoc.tracks[trknum]); if (outtoc.tracks[trknum].datasize == 0) { + fclose(infile); printf("ERROR: Unknown track type [%s]. Contact MAMEDEV.\n", token); return CHDERR_UNSUPPORTED_FORMAT; } @@ -1297,6 +1300,7 @@ chd_error chdcd_parse_toc(const char *tocfname, cdrom_toc &outtoc, chdcd_track_i cdrom_convert_type_string_to_track_info(token, &outtoc.tracks[trknum]); if (outtoc.tracks[trknum].datasize == 0) { + fclose(infile); printf("ERROR: Unknown track type [%s]. Contact MAMEDEV.\n", token); return CHDERR_UNSUPPORTED_FORMAT; } diff --git a/src/tools/imgtool/modules/mac.cpp b/src/tools/imgtool/modules/mac.cpp index f606451c6e1..90c68323f76 100644 --- a/src/tools/imgtool/modules/mac.cpp +++ b/src/tools/imgtool/modules/mac.cpp @@ -4485,7 +4485,10 @@ end_of_list: /* check free node count */ if (freeNodes != actualFreeNodes) - return IMGTOOLERR_CORRUPTIMAGE; + { + err = IMGTOOLERR_CORRUPTIMAGE; + goto bail; + } bail: /* free buffers */ |