aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/cdriso.c
diff options
context:
space:
mode:
authortwinaphex2013-03-18 01:16:31 +0100
committertwinaphex2013-03-18 01:16:31 +0100
commit22dade5ca95efa7fb3530023dbab77f8516bfed7 (patch)
tree40a660c1e7a806abe03b2c9f2e6389073894877b /libpcsxcore/cdriso.c
parent24f4865eff11beb6348d9e0e310d593477359afe (diff)
parent101e053c72e9299bfbd1cbf6a8de9ba6cff11e4c (diff)
downloadpcsx_rearmed-22dade5ca95efa7fb3530023dbab77f8516bfed7.tar.gz
pcsx_rearmed-22dade5ca95efa7fb3530023dbab77f8516bfed7.tar.bz2
pcsx_rearmed-22dade5ca95efa7fb3530023dbab77f8516bfed7.zip
Merge git://github.com/notaz/pcsx_rearmed
Diffstat (limited to 'libpcsxcore/cdriso.c')
-rw-r--r--libpcsxcore/cdriso.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c
index 21203da..dde21bc 100644
--- a/libpcsxcore/cdriso.c
+++ b/libpcsxcore/cdriso.c
@@ -1316,8 +1316,12 @@ static long CALLBACK ISOclose(void) {
}
}
numtracks = 0;
+ ti[1].type = 0;
UnloadSBI();
+ memset(cdbuffer, 0, sizeof(cdbuffer));
+ CDR_getBuffer = ISOgetBuffer;
+
return 0;
}
@@ -1400,6 +1404,7 @@ static void DecodeRawSubData(void) {
// uses bcd format
static long CALLBACK ISOreadTrack(unsigned char *time) {
int sector = MSF2SECT(btoi(time[0]), btoi(time[1]), btoi(time[2]));
+ long ret;
if (cdHandle == NULL) {
return -1;
@@ -1414,7 +1419,9 @@ static long CALLBACK ISOreadTrack(unsigned char *time) {
}
}
- cdimg_read_func(cdHandle, 0, cdbuffer, sector);
+ ret = cdimg_read_func(cdHandle, 0, cdbuffer, sector);
+ if (ret < 0)
+ return -1;
if (subHandle != NULL) {
fseek(subHandle, sector * SUB_FRAMESIZE, SEEK_SET);