diff --git a/README.md b/README.md
index 032d8740e..bb4b44987 100755
--- a/README.md
+++ b/README.md
@@ -220,6 +220,7 @@ Please select according to languages:
### V2 changes
+* v2.0, 2018-07-21, Merge [#1119][bug #1119], fix memory leak. 2.0.249
* v2.0, 2018-07-18, [2.0 release3(2.0.248)][r2.0r3] released. 86775 lines.
* v2.0, 2018-07-17, Merge [#1176][bug #1176], fix scaned issues. 2.0.248
* v2.0, 2018-02-28, Merge [#1077][bug #1077], fix crash for edge HLS. 2.0.247
@@ -1424,6 +1425,7 @@ Winlin
[bug #1059]: https://github.com/ossrs/srs/issues/1059
[bug #1077]: https://github.com/ossrs/srs/issues/1077
[bug #1176]: https://github.com/ossrs/srs/issues/1176
+[bug #1119]: https://github.com/ossrs/srs/issues/1119
[bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx
[bug #735]: https://github.com/ossrs/srs/issues/735
diff --git a/trunk/src/kernel/srs_kernel_ts.cpp b/trunk/src/kernel/srs_kernel_ts.cpp
index 108567662..f147a8339 100644
--- a/trunk/src/kernel/srs_kernel_ts.cpp
+++ b/trunk/src/kernel/srs_kernel_ts.cpp
@@ -182,8 +182,11 @@ SrsTsMessage* SrsTsMessage::detach()
cp->sid = sid;
cp->PES_packet_length = PES_packet_length;
cp->continuity_counter = continuity_counter;
+
+ srs_freep(cp->payload);
cp->payload = payload;
payload = NULL;
+
return cp;
}
diff --git a/trunk/src/main/srs_main_ingest_hls.cpp b/trunk/src/main/srs_main_ingest_hls.cpp
index 3caa5968d..a17c6946b 100644
--- a/trunk/src/main/srs_main_ingest_hls.cpp
+++ b/trunk/src/main/srs_main_ingest_hls.cpp
@@ -906,10 +906,12 @@ int SrsIngestHlsOutput::parse_message_queue()
std::multimap::iterator it = queue.begin();
SrsTsMessage* msg = it->second;
+ SrsAutoFree(SrsTsMessage, msg);
+ queue.erase(it);
+
if (msg->channel->stream == SrsTsStreamVideoH264) {
nb_videos--;
}
- queue.erase(it);
// parse the stream.
SrsBuffer avs(msg->payload->bytes(), msg->payload->length());
@@ -939,6 +941,7 @@ int SrsIngestHlsOutput::flush_message_queue()
std::multimap::iterator it = queue.begin();
SrsTsMessage* msg = it->second;
+ SrsAutoFree(SrsTsMessage, msg);
queue.erase(it);
// parse the stream.