summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Scott Stone <tafoid@users.noreply.github.com>2011-06-15 21:37:25 +0000
committer Scott Stone <tafoid@users.noreply.github.com>2011-06-15 21:37:25 +0000
commit6742160c254bece83f595360f2bce0a20c43b74e (patch)
tree77c2bbb515f4a8487331d85928c77ce443bc380f /src
parentdfa747f4719e334478ab6149eebb6cd70cb17b54 (diff)
Fixed some potential memory leaks and NULL pointer deferences as well as removing some redundant checks. [Oliver Stoneberg]
Diffstat (limited to 'src')
-rw-r--r--src/emu/machine.c2
-rw-r--r--src/emu/romload.c1
-rw-r--r--src/emu/sound/wavwrite.c4
-rw-r--r--src/tools/chdcd.c3
4 files changed, 6 insertions, 4 deletions
diff --git a/src/emu/machine.c b/src/emu/machine.c
index fdd0b1d22ba..840a17591a0 100644
--- a/src/emu/machine.c
+++ b/src/emu/machine.c
@@ -239,8 +239,6 @@ const char *running_machine::describe_context()
cpu_device *cpu = downcast<cpu_device *>(&executing->device());
if (cpu != NULL)
m_context.printf("'%s' (%s)", cpu->tag(), core_i64_hex_format(cpu->pc(), cpu->space(AS_PROGRAM)->logaddrchars()));
- else
- m_context.printf("'%s'", cpu->tag());
}
else
m_context.cpy("(no context)");
diff --git a/src/emu/romload.c b/src/emu/romload.c
index 29e9d940c24..d6b2f6d3f6d 100644
--- a/src/emu/romload.c
+++ b/src/emu/romload.c
@@ -1346,7 +1346,6 @@ void load_software_part_region(device_t *device, char *swlist, char *swname, rom
for (software_info *swinfo = software_list_find(software_list_ptr, swname, NULL); swinfo != NULL; )
{
- if (swinfo != NULL)
{
astring tmp(swinfo->shortname);
locationtag.cat(tmp);
diff --git a/src/emu/sound/wavwrite.c b/src/emu/sound/wavwrite.c
index 5cd884d7417..dba7250194f 100644
--- a/src/emu/sound/wavwrite.c
+++ b/src/emu/sound/wavwrite.c
@@ -86,11 +86,13 @@ wav_file *wav_open(const char *filename, int sample_rate, int channels)
void wav_close(wav_file *wav)
{
- UINT32 total = ftell(wav->file);
+ UINT32 total;
UINT32 temp32;
if (!wav) return;
+ total = ftell(wav->file);
+
/* update the total file size */
fseek(wav->file, wav->total_offs, SEEK_SET);
temp32 = total - (wav->total_offs + 4);
diff --git a/src/tools/chdcd.c b/src/tools/chdcd.c
index 7b762792f69..0db20f4fc6b 100644
--- a/src/tools/chdcd.c
+++ b/src/tools/chdcd.c
@@ -318,6 +318,7 @@ chd_error chdcd_parse_nero(const char *tocfname, cdrom_toc *outtoc, chdcd_track_
if (memcmp(buffer, "NER5", 4))
{
printf("ERROR: Not a Nero 5.5 or later image!\n");
+ fclose(infile);
return CHDERR_FILE_NOT_FOUND;
}
@@ -326,6 +327,7 @@ chd_error chdcd_parse_nero(const char *tocfname, cdrom_toc *outtoc, chdcd_track_
if ((buffer[7] != 0) || (buffer[6] != 0) || (buffer[5] != 0) || (buffer[4] != 0))
{
printf("ERROR: File size is > 4GB, this version of CHDMAN cannot handle it.");
+ fclose(infile);
return CHDERR_FILE_NOT_FOUND;
}
@@ -427,6 +429,7 @@ chd_error chdcd_parse_nero(const char *tocfname, cdrom_toc *outtoc, chdcd_track_
}
}
+ fclose(infile);
return CHDERR_NONE;
}