![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/local/lib/node_modules/mediasoup/worker/fuzzer/src/RTC/RTCP/ |
Upload File : |
#include "RTC/RTCP/FuzzerPacket.hpp" #include "RTC/RTCP/FuzzerBye.hpp" #include "RTC/RTCP/FuzzerFeedbackPs.hpp" #include "RTC/RTCP/FuzzerFeedbackRtp.hpp" #include "RTC/RTCP/FuzzerReceiverReport.hpp" #include "RTC/RTCP/FuzzerSdes.hpp" #include "RTC/RTCP/FuzzerSenderReport.hpp" #include "RTC/RTCP/FuzzerXr.hpp" #include "RTC/RTCP/Packet.hpp" void Fuzzer::RTC::RTCP::Packet::Fuzz(const uint8_t* data, size_t len) { if (!::RTC::RTCP::Packet::IsRtcp(data, len)) return; // We need to clone the given data into a separate buffer because setters // below will try to write into packet memory. uint8_t data2[len]; std::memcpy(data2, data, len); ::RTC::RTCP::Packet* packet = ::RTC::RTCP::Packet::Parse(data2, len); if (!packet) return; while (packet != nullptr) { auto* previousPacket = packet; switch (::RTC::RTCP::Type(packet->GetType())) { case ::RTC::RTCP::Type::SR: { auto* sr = dynamic_cast<::RTC::RTCP::SenderReportPacket*>(packet); RTC::RTCP::SenderReport::Fuzz(sr); break; } case ::RTC::RTCP::Type::RR: { auto* rr = dynamic_cast<::RTC::RTCP::ReceiverReportPacket*>(packet); RTC::RTCP::ReceiverReport::Fuzz(rr); break; } case ::RTC::RTCP::Type::SDES: { auto* sdes = dynamic_cast<::RTC::RTCP::SdesPacket*>(packet); RTC::RTCP::Sdes::Fuzz(sdes); break; } case ::RTC::RTCP::Type::BYE: { auto* bye = dynamic_cast<::RTC::RTCP::ByePacket*>(packet); RTC::RTCP::Bye::Fuzz(bye); break; } case ::RTC::RTCP::Type::RTPFB: { RTC::RTCP::FeedbackRtp::Fuzz(packet); break; } case ::RTC::RTCP::Type::PSFB: { RTC::RTCP::FeedbackPs::Fuzz(packet); break; } case ::RTC::RTCP::Type::XR: { auto* xr = dynamic_cast<::RTC::RTCP::ExtendedReportPacket*>(packet); RTC::RTCP::ExtendedReport::Fuzz(xr); break; } default: { } } packet = packet->GetNext(); delete previousPacket; } }