<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">
Hi,</div>
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
We found one memory issue about an invalid read in the function handleCmd_DECRIBE in live.2023.05.10. Here is the bug report from the Valgrind:</div>
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
---</div>
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
<div style="font-family: "Droid Sans Mono", "monospace", monospace; font-weight: normal; font-size: 14px; line-height: 19px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span><span style="color: rgb(163, 21, 21);" class="ContentPasted0"></span></span>
<div style="font-family: "Droid Sans Mono", "monospace", monospace; font-weight: normal; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span><span class="ContentPasted1">==1744== Invalid read of size 1</span></span>
<div><span class="ContentPasted1">==1744==    at 0x483EF46: strlen (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x4E2FD14: __vfprintf_internal (vfprintf-internal.c:1688)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x4E42F99: __vsnprintf_internal (vsnprintf.c:114)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x4EE4F40: __snprintf_chk (snprintf_chk.c:38)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x130589: snprintf (stdio2.h:67)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x130589: RTSPServer::RTSPClientConnection::handleCmd_DESCRIBE_afterLookup(ServerMediaSession*) (RTSPServer.cpp:434)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x12EE20: RTSPServer::RTSPClientConnection::handleCmd_DESCRIBE(char const*, char const*, char const*) (RTSPServer.cpp:397)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x12F847: RTSPServer::RTSPClientConnection::handleRequestBytes(int) (RTSPServer.cpp:862)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x170C70: GenericMediaServer::ClientConnection::incomingRequestHandler() (GenericMediaServer.cpp:324)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x188D19: BasicTaskScheduler::SingleStep(unsigned int) (BasicTaskScheduler.cpp:153)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x18A3C2: BasicTaskScheduler0::doEventLoop(char volatile*) (BasicTaskScheduler0.cpp:82)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x12CA2E: main (testOnDemandRTSPServer.cpp:462)</span></div>
<div><span class="ContentPasted1">==1744==  Address 0x1ffeffeda0 is on thread 1's stack</span></div>
<div><span class="ContentPasted1">==1744==  232 bytes below stack pointer</span></div>
<div><span class="ContentPasted1">==1744== </span></div>
<div><span class="ContentPasted1">==1744== </span></div>
<div><span class="ContentPasted1">==1744== Process terminating with default action of signal 2 (SIGINT)</span></div>
<div><span class="ContentPasted1">==1744==    at 0x170DD0: snprintf (stdio2.h:67)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x170DD0: GenericMediaServer::createNewClientSessionWithId() (GenericMediaServer.cpp:403)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x12F926: RTSPServer::RTSPClientConnection::handleRequestBytes(int) (RTSPServer.cpp:881)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x170C70: GenericMediaServer::ClientConnection::incomingRequestHandler() (GenericMediaServer.cpp:324)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x188D19: BasicTaskScheduler::SingleStep(unsigned int) (BasicTaskScheduler.cpp:153)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x18A3C2: BasicTaskScheduler0::doEventLoop(char volatile*) (BasicTaskScheduler0.cpp:82)</span></div>
<div><span class="ContentPasted1">==1744==    by 0x12CA2E: main (testOnDemandRTSPServer.cpp:462)</span></div>
<div><span class="ContentPasted1">==1744== </span></div>
<div><span class="ContentPasted1">==1744== HEAP SUMMARY:</span></div>
<div><span class="ContentPasted1">==1744==     in use at exit: 679,238 bytes in 423 blocks</span></div>
<div><span class="ContentPasted1">==1744==   total heap usage: 1,708 allocs, 1,285 frees, 8,952,007 bytes allocated</span></div>
<div><span class="ContentPasted1">==1744== </span></div>
<div><span class="ContentPasted1">==1744== LEAK SUMMARY:</span></div>
<div><span class="ContentPasted1">==1744==    definitely lost: 0 bytes in 0 blocks</span></div>
<div><span class="ContentPasted1">==1744==    indirectly lost: 0 bytes in 0 blocks</span></div>
<div><span class="ContentPasted1">==1744==      possibly lost: 0 bytes in 0 blocks</span></div>
<div><span class="ContentPasted1">==1744==    still reachable: 679,238 bytes in 423 blocks</span></div>
<div><span class="ContentPasted1">==1744==         suppressed: 0 bytes in 0 blocks</span></div>
<div><span class="ContentPasted1">==1744== Rerun with --leak-check=full to see details of leaked memory</span></div>
<div><span class="ContentPasted1">==1744== </span></div>
<div><span class="ContentPasted1">==1744== Use --track-origins=yes to see where uninitialised values come from</span></div>
<div><span class="ContentPasted1">==1744== For lists of detected and suppressed errors, rerun with: -s</span></div>
<div><span class="ContentPasted1">==1744== ERROR SUMMARY: 10 errors from 4 contexts (suppressed: 0 from 0)</span></div>
</div>
</div>
<div style="font-family: "Droid Sans Mono", "monospace", monospace; font-weight: normal; font-size: 14px; line-height: 19px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    at 0x483EF46: strlen (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x4E2FD14: __vfprintf_internal (vfprintf-internal.c:1688)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x4E42F99: __vsnprintf_internal (vsnprintf.c:114)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x4EE4F40: __snprintf_chk (snprintf_chk.c:38)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x130A91: snprintf (stdio2.h:67)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x130A91: RTSPServer::RTSPClientSession::handleCmd_PLAY(RTSPServer::RTSPClientConnection*, ServerMediaSubsession*, char const*) (RTSPServer.cpp:1978)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x131FCC: RTSPServer::RTSPClientSession::handleCmd_withinSession(RTSPServer::RTSPClientConnection*, char const*, char const*, char const*, char const*) (RTSPServer.cpp:1739)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x12F299: RTSPServer::RTSPClientConnection::handleRequestBytes(int) (RTSPServer.cpp:996)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x170C70: GenericMediaServer::ClientConnection::incomingRequestHandler() (GenericMediaServer.cpp:324)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x188D19: BasicTaskScheduler::SingleStep(unsigned int) (BasicTaskScheduler.cpp:153)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x18A3C2: BasicTaskScheduler0::doEventLoop(char volatile*) (BasicTaskScheduler0.cpp:82)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==    by 0x12CA2E: main (testOnDemandRTSPServer.cpp:462)</span></div>
<div><span style="color: rgb(163, 21, 21);" class="ContentPasted0">==1755==  Address 0x1ffeffedd0 is on thread 1'</span><span class="ContentPasted0">s stack</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==  232 bytes below stack pointer</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==
</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==
</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">== Process terminating with default action of signal 2 (SIGINT)</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==    at 0x4ECBF7A: select (select.c:41)</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==    by 0x188BC5: BasicTaskScheduler::SingleStep(unsigned int) (BasicTaskScheduler.cpp:90)</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==    by 0x18A3C2: BasicTaskScheduler0::doEventLoop(char volatile*) (BasicTaskScheduler0.cpp:82)</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==    by 0x12CA2E: main (testOnDemandRTSPServer.cpp:462)</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==
</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">== HEAP SUMMARY:</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==     in use at exit: 1,251,900 bytes in 452 blocks</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==   total heap usage: 3,013 allocs, 2,561 frees, 5,545,849 bytes allocated</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==
</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">== LEAK SUMMARY:</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==    definitely lost: 160 bytes in 1 blocks</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==    indirectly lost: 0 bytes in 0 blocks</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==      possibly lost: 0 bytes in 0 blocks</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==    still reachable: 1,251,740 bytes in 451 blocks</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==         suppressed: 0 bytes in 0 blocks</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">== Rerun with --</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">leak-check</span><span class="ContentPasted0">=full
 to see details of leaked memory</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">==
</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">== Use --</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">track-origins</span><span class="ContentPasted0">=yes
 to see where uninitialised values come from</span></div>
<div><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">== For lists of detected and suppressed errors, rerun with: -s</span></div>
<span><span class="ContentPasted0">==</span><span style="color: rgb(0, 0, 255);" class="ContentPasted0">1755</span><span class="ContentPasted0">== ERROR SUMMARY: 31 errors from 6 contexts (suppressed: 0 from 0)</span></span></div>
<br>
</div>
<div class="elementToProof">
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="Signature">
<div>
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
</div>
<div style="font-family: "Times New Roman", Times, serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-size: 11pt; font-family: Verdana, Geneva, sans-serif;">------</span></div>
<div style="font-family: "Times New Roman", Times, serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-size: 11pt; font-family: Verdana, Geneva, sans-serif;">Kind Regards,</span></div>
<div style="font-family: "Times New Roman", Times, serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-size: 11pt; font-family: Verdana, Geneva, sans-serif;">Ruijie</span></div>
</div>
</div>
</div>
</body>
</html>