diff -Nru firefox-esr-78.13.0esr+build1/BUILDID firefox-esr-78.13.0esr+build2/BUILDID --- firefox-esr-78.13.0esr+build1/BUILDID 2021-08-02 15:52:25.000000000 +0000 +++ firefox-esr-78.13.0esr+build2/BUILDID 2021-08-05 05:11:49.000000000 +0000 @@ -1 +1 @@ -20210802115006 \ No newline at end of file +20210804193512 \ No newline at end of file diff -Nru firefox-esr-78.13.0esr+build1/debian/changelog firefox-esr-78.13.0esr+build2/debian/changelog --- firefox-esr-78.13.0esr+build1/debian/changelog 2021-08-02 15:40:42.000000000 +0000 +++ firefox-esr-78.13.0esr+build2/debian/changelog 2021-08-05 05:04:59.000000000 +0000 @@ -1,3 +1,9 @@ +firefox-esr (78.13.0esr+build2-0ubuntu0.16.04.1) xenial; urgency=medium + + * New upstream stable release (FIREFOX_78_13_0esr_BUILD2) + + -- Rico Tzschichholz Thu, 05 Aug 2021 07:04:59 +0200 + firefox-esr (78.13.0esr+build1-0ubuntu0.16.04.1) xenial; urgency=medium * New upstream stable release (FIREFOX_78_13_0esr_BUILD1) diff -Nru firefox-esr-78.13.0esr+build1/dom/media/ChannelMediaResource.cpp firefox-esr-78.13.0esr+build2/dom/media/ChannelMediaResource.cpp --- firefox-esr-78.13.0esr+build1/dom/media/ChannelMediaResource.cpp 2021-08-02 15:45:01.000000000 +0000 +++ firefox-esr-78.13.0esr+build2/dom/media/ChannelMediaResource.cpp 2021-08-05 05:04:16.000000000 +0000 @@ -640,6 +640,15 @@ void ChannelMediaResource::CloseChannel() { NS_ASSERTION(NS_IsMainThread(), "Only call on main thread"); + // Revoking listener should be done before canceling the channel, because + // canceling the channel might cause the input stream to release its buffer. + // If we don't do revoke first, it's possible that `OnDataAvailable` would be + // called later and then incorrectly access that released buffer. + if (mListener) { + mListener->Revoke(); + mListener = nullptr; + } + if (mChannel) { mSuspendAgent.Revoke(); // The status we use here won't be passed to the decoder, since @@ -652,11 +661,6 @@ mChannel->Cancel(NS_ERROR_PARSED_DATA_CACHED); mChannel = nullptr; } - - if (mListener) { - mListener->Revoke(); - mListener = nullptr; - } } nsresult ChannelMediaResource::ReadFromCache(char* aBuffer, int64_t aOffset, diff -Nru firefox-esr-78.13.0esr+build1/SOURCE_CHANGESET firefox-esr-78.13.0esr+build2/SOURCE_CHANGESET --- firefox-esr-78.13.0esr+build1/SOURCE_CHANGESET 2021-08-02 15:45:34.000000000 +0000 +++ firefox-esr-78.13.0esr+build2/SOURCE_CHANGESET 2021-08-05 05:04:48.000000000 +0000 @@ -1 +1 @@ -c1bc34d42814d7b62e2a28a116cc7749b3a13107 \ No newline at end of file +7d8548789b6c540da86256a96c81cdfe25ae2130 \ No newline at end of file