<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
<span class="x_elementToProof ContentPasted0" style="font-size: 11pt; margin: 0px; background-color: rgb(255, 255, 255);">Hi,</span>
<div class="x_elementToProof" style="font-size: 11pt; margin: 0px; background-color: rgb(255, 255, 255);">
<br class="ContentPasted0">
</div>
<div class="x_elementToProof ContentPasted0" style="font-size: 11pt; margin: 0px; background-color: rgb(255, 255, 255);">
We found one memory leak in the function<span class="ContentPasted0"> </span><span class="x_ContentPasted1 ContentPasted0" style="font-size: 14px; font-family: "Droid Sans Mono", "monospace", monospace; margin: 0px; display: inline !important; background-color: rgb(255, 255, 255);">handleCmd_PLAY
 in l</span>ive.2023.05.10. Here is the bug report from the valgrind:</div>
<div class="x_elementToProof" style="font-size: 11pt; margin: 0px; background-color: rgb(255, 255, 255);">
<br class="ContentPasted0">
</div>
<div class="x_elementToProof ContentPasted0" style="font-size: 11pt; margin: 0px; background-color: rgb(255, 255, 255);">
---</div>
<div class="x_elementToProof" style="font-size: 11pt; margin: 0px; background-color: rgb(255, 255, 255);">
<br class="ContentPasted0">
<div style="font-weight: normal; font-size: 14px; line-height: 19px; font-family: "Droid Sans Mono", "monospace", monospace; margin: 0px; background-color: rgb(255, 255, 255);">
<span style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755== Invalid read of size 1</span></span>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    at 0x483EF46: strlen (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x4E2FD14: __vfprintf_internal (vfprintf-internal.c:1688)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x4E42F99: __vsnprintf_internal (vsnprintf.c:114)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x4EE4F40: __snprintf_chk (snprintf_chk.c:38)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x130A91: snprintf (stdio2.h:67)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x130A91: RTSPServer::RTSPClientSession::handleCmd_PLAY(RTSPServer::RTSPClientConnection*, ServerMediaSubsession*, char const*)
 (RTSPServer.cpp:1978)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x131FCC: RTSPServer::RTSPClientSession::handleCmd_withinSession(RTSPServer::RTSPClientConnection*, char const*, char const*,
 char const*, char const*) (RTSPServer.cpp:1739)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x12F299: RTSPServer::RTSPClientConnection::handleRequestBytes(int) (RTSPServer.cpp:996)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x170C70: GenericMediaServer::ClientConnection::incomingRequestHandler() (GenericMediaServer.cpp:324)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x188D19: BasicTaskScheduler::SingleStep(unsigned int) (BasicTaskScheduler.cpp:153)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x18A3C2: BasicTaskScheduler0::doEventLoop(char volatile*) (BasicTaskScheduler0.cpp:82)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==    by 0x12CA2E: main (testOnDemandRTSPServer.cpp:462)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(163, 21, 21);">==1755==  Address 0x1ffeffedd0 is on thread 1'</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">s stack</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
  232 bytes below stack pointer</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
 Process terminating with default action of signal 2 (SIGINT)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
    at 0x4ECBF7A: select (select.c:41)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
    by 0x188BC5: BasicTaskScheduler::SingleStep(unsigned int) (BasicTaskScheduler.cpp:90)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
    by 0x18A3C2: BasicTaskScheduler0::doEventLoop(char volatile*) (BasicTaskScheduler0.cpp:82)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
    by 0x12CA2E: main (testOnDemandRTSPServer.cpp:462)</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
 HEAP SUMMARY:</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
     in use at exit: 1,251,900 bytes in 452 blocks</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
   total heap usage: 3,013 allocs, 2,561 frees, 5,545,849 bytes allocated</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
 LEAK SUMMARY:</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
    definitely lost: 160 bytes in 1 blocks</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
    indirectly lost: 0 bytes in 0 blocks</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
      possibly lost: 0 bytes in 0 blocks</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
    still reachable: 1,251,740 bytes in 451 blocks</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
         suppressed: 0 bytes in 0 blocks</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
 Rerun with --</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">leak-check</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">=full to see details of leaked memory</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
 Use --</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">track-origins</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">=yes to see where uninitialised values come from</span></div>
<div style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
 For lists of detected and suppressed errors, rerun with: -s</span></div>
<span style="margin:0px"><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==</span><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; color: rgb(0, 0, 255);">1755</span><span class="x_ContentPasted0 ContentPasted0" style="margin:0px">==
 ERROR SUMMARY: 31 errors from 6 contexts (suppressed: 0 from 0)</span></span></div>
<br class="ContentPasted0">
<br class="ContentPasted0">
</div>
<div class="x_elementToProof" style="font-size: 15px; font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; margin: 0px; color: rgb(36, 36, 36); background-color: rgb(255, 255, 255);">
<div style="font-size: 11pt; font-family: Verdana, Geneva, sans-serif; margin: 0px; color: rgb(0, 0, 0);">
<br class="ContentPasted0">
</div>
<div style="margin:0px">
<div style="margin:0px">
<div style="font-size: 11pt; font-family: Verdana, Geneva, sans-serif; margin: 0px; color: rgb(0, 0, 0);">
</div>
<div style="font-size: 12pt; font-family: "Times New Roman", Times, serif; margin: 0px; color: rgb(0, 0, 0);">
<span style="font-size:11pt;font-family:Verdana, Geneva, sans-serif;margin:0px" class="ContentPasted0">------</span></div>
<div style="font-size: 12pt; font-family: "Times New Roman", Times, serif; margin: 0px; color: rgb(0, 0, 0);">
<span style="font-size:11pt;font-family:Verdana, Geneva, sans-serif;margin:0px" class="ContentPasted0">Kind Regards,</span></div>
</div>
<div style="margin:0px"><span style="font-size: 12pt; font-family: "Times New Roman", Times, serif; margin: 0px; color: rgb(0, 0, 0);"><span style="font-size:11pt;font-family:Verdana, Geneva, sans-serif;margin:0px" class="ContentPasted0">Ruijie</span></span></div>
</div>
</div>
</div>
</body>
</html>