winlin

fix mem leak for send packet, always free in send msg.

@@ -449,6 +449,10 @@ int SrsProtocol::do_send_and_free_message(SrsMessage* msg, SrsPacket* packet) @@ -449,6 +449,10 @@ int SrsProtocol::do_send_and_free_message(SrsMessage* msg, SrsPacket* packet)
449 { 449 {
450 int ret = ERROR_SUCCESS; 450 int ret = ERROR_SUCCESS;
451 451
  452 + // always free msg.
  453 + srs_assert(msg);
  454 + SrsAutoFree(SrsMessage, msg, false);
  455 +
452 // we donot use the complex basic header, 456 // we donot use the complex basic header,
453 // ensure the basic header is 1bytes. 457 // ensure the basic header is 1bytes.
454 if (msg->header.perfer_cid < 2) { 458 if (msg->header.perfer_cid < 2) {
@@ -732,9 +736,6 @@ int SrsProtocol::do_decode_message(SrsMessageHeader& header, SrsStream* stream, @@ -732,9 +736,6 @@ int SrsProtocol::do_decode_message(SrsMessageHeader& header, SrsStream* stream,
732 736
733 int SrsProtocol::send_and_free_message(SrsMessage* msg) 737 int SrsProtocol::send_and_free_message(SrsMessage* msg)
734 { 738 {
735 - srs_assert(msg);  
736 - SrsAutoFree(SrsMessage, msg, false);  
737 -  
738 return do_send_and_free_message(msg, NULL); 739 return do_send_and_free_message(msg, NULL);
739 } 740 }
740 741