<html><head>

<style title="__xfree_default">

html { cursor: text; }
p {margin-top: 0pt; margin-bottom: 0pt; }
ol, li, ul {margin-top: 3pt; margin-bottom: 3pt; }
td { /* word-break: break-all;*/}
blockquote { margin-top: 0pt; margin-bottom: 0pt }
</style>
<style type="text/css">

html { cursor: text; }
p {margin-top: 0pt; margin-bottom: 0pt; }
ol, li, ul {margin-top: 3pt; margin-bottom: 3pt; }
td { /* word-break: break-all;*/}
blockquote { margin-top: 0pt; margin-bottom: 0pt }
</style></head>
<body style="font-family: 맑은 고딕; font-size: 10pt;" ><p style="font-family: 맑은 고딕; font-size: 10pt;"><strong><span style="font-size: 13pt;">1. Case Description.</span></strong><br> Leaks occur when requesting the same rtsp token at the same time.<br>(The same rtsp token means the same url.)</p><p style="font-family: 맑은 고딕; font-size: 10pt;"><br><strong><span style="font-size: 13pt;">2. Modification code.</span></strong><br><strong>original code.</strong><br>void OnDemandServerMediaSubsession<br>::setSDPLinesFromRTPSink(RTPSink* rtpSink, FramedSource* inputSource, unsigned estBitrate) {<br>..............</p><p style="font-family: 맑은 고딕; font-size: 10pt;">  fSDPLines = strDup(sdpLines);<br>  delete[] sdpLines;<br>}</p><p style="font-family: 맑은 고딕; font-size: 10pt;"><br></p><p style="font-family: 맑은 고딕; font-size: 10pt;"><strong>leak prevention code.</strong><br>void OnDemandServerMediaSubsession<br>::setSDPLinesFromRTPSink(RTPSink* rtpSink, FramedSource* inputSource, unsigned estBitrate) {<br>..............<br>  if (fSDPLines!=NULL) {<br>    if(strcmp(fSDPLines,sdpLines)==0) <br>    {<br>      printf("exisiting sdp line\n"); <br>      goto FSDPLINES_OUT;<br>    }<br>    else<br>    {<br>      printf("not null fSDPLines, but sdpLine replacement is required.\n"); <br>      delete[] fSDPLines;  <br>    }<br>  }<br>  fSDPLines = strDup(sdpLines);<br>FSDPLINES_OUT:<br>  delete[] sdpLines;<br>}</p><p style="font-family: 맑은 고딕; font-size: 10pt;"> </p><p style="font-family: 맑은 고딕; font-size: 10pt;"><strong><span style="font-size: 13pt;">3. Valgrind Log</span></strong><br> 141 ==00:01:07:51.522 10123== 1,182 bytes in 6 blocks are definitely lost in loss record 1 of 1<br> 142 ==00:01:07:51.522 10123==    at 0x4C2A8A8: operator new[](unsigned long) (vg_replace_malloc.c:423)<br> 143 ==00:01:07:51.522 10123==    by 0x525CAEF: strDup(char const*) (strDup.cpp:26)<br> 144 ==00:01:07:51.522 10123==    by 0x5518F34: OnDemandServerMediaSubsession::setSDPLinesFromRTPSink(RTPSink*, FramedSource*, unsigned int) (OnDemandServerMediaSubsession.cpp:468)<br> 145 ==00:01:07:51.522 10123==    by 0x5519054: OnDemandServerMediaSubsession::sdpLines() (OnDemandServerMediaSubsession.cpp:76)<br> 146 ==00:01:07:51.522 10123==    by 0x5517419: ServerMediaSession::generateSDPDescription() (ServerMediaSession.cpp:240)<br> 147 ==00:01:07:51.522 10123==    by 0x550611D: RTSPServer::RTSPClientConnection::handleCmd_DESCRIBE(char const*, char const*, char const*) (RTSPServer.cpp:345)<br> 148 ==00:01:07:51.522 10123==    by 0x5505280: RTSPServer::RTSPClientConnection::handleRequestBytes(int) (RTSPServer.cpp:750)<br> 149 ==00:01:07:51.522 10123==    by 0x550357A: GenericMediaServer::ClientConnection::incomingRequestHandler() (GenericMediaServer.cpp:254)<br> 150 ==00:01:07:51.522 10123==    by 0x505679B: BasicTaskScheduler::SingleStep(unsigned int) (BasicTaskScheduler.cpp:171)<br> 151 ==00:01:07:51.522 10123==    by 0x505577B: BasicTaskScheduler0::doEventLoop(char volatile*) (BasicTaskScheduler0.cpp:80)<br> 152 ==00:01:07:51.522 10123==    by 0x404FAE: CustomVideoServerMediaSubsession::getAuxSDPLine(RTPSink*, FramedSource*) (CustomVideoServerMediaSubsession.cpp:74)<br> 153 ==00:01:07:51.522 10123==    by 0x5518E25: OnDemandServerMediaSubsession::setSDPLinesFromRTPSink(RTPSink*, FramedSource*, unsigned int) (OnDemandServerMediaSubsession.cpp:433)</p><br><div id='dvdisclaimer'><hr><font style='font-family: gulim; color: Gray; font-size: 9pt'>상기 메시지와 첨부화일 내에는 비밀정보가 포함되어 있을 수 있으며, 지정된 수신자에 한하여 조회 및 사용될 수 있습니다. 만약 송신자의 실수로 인하여 상기 메시지를 수신하였다면, 송신자에게 메시지를 반송해 주시고, 원본 메시지와 모든 사본을 폐기해 주시기 바랍니다.<br>상기 메시지의 전체 또는 일부에 대해 무단 열람, 사용, 공개, 배포하는 것은 금지되어 있습니다.(주)LG CNS.<BR>This message and its attachments may contain confidential information, and they are intended to be viewed or used by only the individuals specified in the message.  If you have received this message in an error from the sender, please contact the sender immediately to notify the error and delete all of the message and its copies.  It is prohibited to view, use, make public and/or distribute part or whole of this message without written permission.<br></font></div></body></html>