1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Fix #848, crash at HTTP fast buffer grow 2.0.239

This commit is contained in:
winlin 2017-04-18 11:41:09 +08:00
parent 33a0abdeff
commit 5e284b58a4
3 changed files with 6 additions and 3 deletions

View file

@ -336,6 +336,7 @@ Remark:
## History ## History
* v2.0, 2017-04-18, Fix [#848][bug #848], crash at HTTP fast buffer grow 2.0.239
* v2.0, 2017-04-15, Fix [#844][bug #844], support Haivision encoder. 2.0.238 * v2.0, 2017-04-15, Fix [#844][bug #844], support Haivision encoder. 2.0.238
* v2.0, 2017-04-15, Merge [#846][bug #846], fix fd leak for FLV stream caster. 2.0.237 * v2.0, 2017-04-15, Merge [#846][bug #846], fix fd leak for FLV stream caster. 2.0.237
* v2.0, 2017-04-15, Merge [#841][bug #841], avoid the duplicated sps/pps in ts. 2.0.236 * v2.0, 2017-04-15, Merge [#841][bug #841], avoid the duplicated sps/pps in ts. 2.0.236
@ -1287,6 +1288,7 @@ Winlin
[bug #841]: https://github.com/ossrs/srs/issues/841 [bug #841]: https://github.com/ossrs/srs/issues/841
[bug #846]: https://github.com/ossrs/srs/issues/846 [bug #846]: https://github.com/ossrs/srs/issues/846
[bug #844]: https://github.com/ossrs/srs/issues/844 [bug #844]: https://github.com/ossrs/srs/issues/844
[bug #848]: https://github.com/ossrs/srs/issues/848
[bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx [bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx
[exo #828]: https://github.com/google/ExoPlayer/pull/828 [exo #828]: https://github.com/google/ExoPlayer/pull/828

View file

@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// current release version // current release version
#define VERSION_MAJOR 2 #define VERSION_MAJOR 2
#define VERSION_MINOR 0 #define VERSION_MINOR 0
#define VERSION_REVISION 238 #define VERSION_REVISION 239
// generated by configure, only macros. // generated by configure, only macros.
#include <srs_auto_headers.hpp> #include <srs_auto_headers.hpp>

View file

@ -160,9 +160,10 @@ int SrsFastBuffer::grow(ISrsBufferReader* reader, int required_size)
// reset when buffer is empty. // reset when buffer is empty.
p = end = buffer; p = end = buffer;
srs_verbose("all consumed, reset fast buffer"); srs_verbose("all consumed, reset fast buffer");
} else { } else if (nb_exists_bytes < nb_buffer && p > buffer) {
// move the left bytes to start of buffer. // move the left bytes to start of buffer.
srs_assert(nb_exists_bytes < nb_buffer); // @remark Only move memory when space is enough, or failed at next check.
// @see https://github.com/ossrs/srs/issues/848
buffer = (char*)memmove(buffer, p, nb_exists_bytes); buffer = (char*)memmove(buffer, p, nb_exists_bytes);
p = buffer; p = buffer;
end = p + nb_exists_bytes; end = p + nb_exists_bytes;