diff options
| author | SND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-03-14 23:58:35 +0000 |
|---|---|---|
| committer | SND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-03-14 23:58:35 +0000 |
| commit | 91e7cfa47335be2acf93d98edfd3c35ac0b256fa (patch) | |
| tree | 4eea094bc95fa58fdc2941ff3508af8883dcfeac | |
| parent | 4b53e6956eb6b7abf3d7ce63ee0208a67116e9a7 (diff) | |
| download | pcsxr-91e7cfa47335be2acf93d98edfd3c35ac0b256fa.tar.gz | |
cdriso: handle no disk state better
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@83609 e17a0e51-4ae3-4d35-97c3-1a29b211df97
| -rwxr-xr-x | libpcsxcore/cdriso.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c index f61b353d..7f5c7f74 100755 --- a/libpcsxcore/cdriso.c +++ b/libpcsxcore/cdriso.c @@ -1158,6 +1158,10 @@ static long CALLBACK ISOclose(void) { } } numtracks = 0; + ti[1].type = 0; + + memset(cdbuffer, 0, sizeof(cdbuffer)); + CDR_getBuffer = ISOgetBuffer; return 0; } @@ -1241,6 +1245,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; @@ -1255,7 +1260,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); |
