diff options
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 |
commit | feee7a3597e4adfdc29776056b1924bbba243e64 (patch) | |
tree | b8507604fb82ec256cca0123dd671b8c95f38e2f /src/lib | |
parent | 160bff7d796a60d9d29de9694c40764865777be3 (diff) |
CHD error handling by Firewave (no whatsnew)
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/util/aviio.c | 5 | ||||
-rw-r--r-- | src/lib/util/chdcodec.c | 4 |
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; |