diff --git a/trunk/src/core/srs_core_protocol.cpp b/trunk/src/core/srs_core_protocol.cpp index 63cc01617..751c453c3 100644 --- a/trunk/src/core/srs_core_protocol.cpp +++ b/trunk/src/core/srs_core_protocol.cpp @@ -1373,7 +1373,10 @@ int SrsSharedPtrMessage::initialize(ISrsMessage* msg, char* payload, int size) header.payload_length = size; ptr = new SrsSharedPtr(); - ptr->payload = payload; + + // should copy the payload once + ptr->payload = new char[size]; + memcpy(ptr->payload, payload, size); ptr->size = size; if (msg->header.is_video()) {