diff --git a/sc2/src/sc2code/libs/sound/decoders/dukaud.c b/sc2/src/sc2code/libs/sound/decoders/dukaud.c index 5d4b604e5..01c5c8161 100644 --- a/sc2/src/sc2code/libs/sound/decoders/dukaud.c +++ b/sc2/src/sc2code/libs/sound/decoders/dukaud.c @@ -111,7 +111,12 @@ duka_readAudFrameHeader (TFB_DuckSoundDecoder* duka, uint32 iframe, { DukAud_FrameHeader hdr; - uio_fseek (duka->duk, duka->frames[iframe], SEEK_SET); + if (uio_fseek (duka->duk, duka->frames[iframe], SEEK_SET) == -1) + { + duka->last_error = errno; + return dukae_BadFile; + } + if (uio_fread (&hdr, sizeof(hdr), 1, duka->duk) != 1) { duka->last_error = errno; @@ -280,7 +285,12 @@ duka_readNextFrame (TFB_DuckSoundDecoder* duka) DukAud_AudSubframe* aud; uint8* p; - uio_fseek (duka->duk, duka->frames[duka->iframe], SEEK_SET); + if (uio_fseek (duka->duk, duka->frames[duka->iframe], SEEK_SET) == -1) + { + duka->last_error = errno; + return dukae_BadFile; + } + if (uio_fread (&hdr, sizeof(hdr), 1, duka->duk) != 1) { duka->last_error = errno;