VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/lib/node_modules/mediasoup/worker/fuzzer/src/RTC/RTCP/FuzzerPacket.cpp
#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;
	}
}

VaKeR 2022