summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2012-05-21 13:26:55 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2012-05-21 13:26:55 +0000
commitfeee7a3597e4adfdc29776056b1924bbba243e64 (patch)
treeb8507604fb82ec256cca0123dd671b8c95f38e2f /src/lib
parent160bff7d796a60d9d29de9694c40764865777be3 (diff)
CHD error handl​ing by Firewave (no whatsnew)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/util/aviio.c5
-rw-r--r--src/lib/util/chdcodec.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/util/aviio.c b/src/lib/util/aviio.c
index d8c7edaf649..3dedeb19a2c 100644
--- a/src/lib/util/aviio.c
+++ b/src/lib/util/aviio.c
@@ -629,6 +629,8 @@ avi_error avi_create(const char *filename, const avi_movie_info *info, avi_file
/* write the initial headers */
avierr = write_initial_headers(newfile);
+ if (avierr != AVIERR_NONE)
+ goto error;
*file = newfile;
return AVIERR_NONE;
@@ -1324,7 +1326,8 @@ static avi_error read_movie_data(avi_file *file)
avierr = find_first_chunk(file, CHUNKTYPE_IDX1, &riff, &idx1);
if (avierr == AVIERR_NONE)
avierr = parse_idx1_chunk(file, movi.offset + 8, &idx1);
- avierr = AVIERR_NONE;
+ if (avierr != AVIERR_NONE)
+ goto error;
/* now extract the movie info */
avierr = extract_movie_info(file);
diff --git a/src/lib/util/chdcodec.c b/src/lib/util/chdcodec.c
index 0ae3b91ed62..acc4298a35a 100644
--- a/src/lib/util/chdcodec.c
+++ b/src/lib/util/chdcodec.c
@@ -965,6 +965,8 @@ void chd_zlib_decompressor::decompress(const UINT8 *src, UINT32 complen, UINT8 *
// do it
zerr = inflate(&m_inflater, Z_FINISH);
+ if (zerr != Z_OK)
+ throw CHDERR_DECOMPRESSION_ERROR;
if (m_inflater.total_out != destlen)
throw CHDERR_DECOMPRESSION_ERROR;
}
@@ -1572,6 +1574,8 @@ void chd_cd_flac_decompressor::decompress(const UINT8 *src, UINT32 complen, UINT
// do it
zerr = inflate(&m_inflater, Z_FINISH);
+ if (zerr != Z_OK)
+ throw CHDERR_DECOMPRESSION_ERROR;
if (m_inflater.total_out != frames * CD_MAX_SUBCODE_DATA)
throw CHDERR_DECOMPRESSION_ERROR;