diff options
author | Dave Sparks <davidsparks@android.com> | 2009-06-26 17:24:22 -0700 |
---|---|---|
committer | Dave Sparks <davidsparks@android.com> | 2009-06-26 17:24:22 -0700 |
commit | 76aa28371e93829927c66f1a48e39e18e01d704d (patch) | |
tree | bffd736e175edbad2f1daeae0868b323631f133c | |
parent | 5e0a3043af16bc71a4211ee00dc00724de6623a7 (diff) | |
download | frameworks_av-76aa28371e93829927c66f1a48e39e18e01d704d.zip frameworks_av-76aa28371e93829927c66f1a48e39e18e01d704d.tar.gz frameworks_av-76aa28371e93829927c66f1a48e39e18e01d704d.tar.bz2 |
We might try to close the Vorbis file twice under certain
circumstances. This fix nulls the mFile member so we don't
try to close it twice. Bug 1904783.
-rw-r--r-- | media/libmediaplayerservice/VorbisPlayer.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/media/libmediaplayerservice/VorbisPlayer.cpp b/media/libmediaplayerservice/VorbisPlayer.cpp index 14fd6ce..7f0ef21 100644 --- a/media/libmediaplayerservice/VorbisPlayer.cpp +++ b/media/libmediaplayerservice/VorbisPlayer.cpp @@ -345,9 +345,6 @@ status_t VorbisPlayer::reset() { LOGV("reset\n"); Mutex::Autolock l(mMutex); - if (mState != STATE_OPEN) { - return NO_ERROR; - } return reset_nosync(); } @@ -355,10 +352,13 @@ status_t VorbisPlayer::reset() status_t VorbisPlayer::reset_nosync() { // close file - ov_clear(&mVorbisFile); // this also closes the FILE if (mFile != NULL) { - LOGV("OOPS! Vorbis didn't close the file"); - fclose(mFile); + ov_clear(&mVorbisFile); // this also closes the FILE + if (mFile != NULL) { + LOGV("OOPS! Vorbis didn't close the file"); + fclose(mFile); + mFile = NULL; + } } mState = STATE_ERROR; |