sdrangel/qrtplib
Jason Gerecke 7c67b7de7c qrtplib: clear buffer fed to RTPSession::CreateCNAME
The RTPSession::CreateCNAME function checks to see if the buffer that
it is provided already has any data in it, and appends to it if so. The
RTPSession::InternalCreate function calls this function with an uninitialized
buffer, which results in indeterminate behavior. To ensure that the CNAME
is properly created, we clear the buffer before use.

==30323== Conditional jump or move depends on uninitialised value(s)
==30323==    at 0x4C30109: __strlen_sse2 (vg_replace_strmem.c:460)
==30323==    by 0x85647A4: qrtplib::RTPSession::CreateCNAME(unsigned char*, unsigned long*, bool) (rtpsession.cpp:1150)
==30323==    by 0x8564B35: qrtplib::RTPSession::InternalCreate(qrtplib::RTPSessionParams const&) (rtpsession.cpp:218)
==30323==    by 0x5499159: RTPSink::RTPSink(QUdpSocket*, int, bool) (rtpsink.cpp:48)
==30323==    by 0x5420B6A: AudioNetSink::AudioNetSink(QObject*, int, bool) (audionetsink.cpp:42)
==30323==    by 0x541F465: AudioOutput::start(int, int) (audiooutput.cpp:114)
==30323==    by 0x5412763: AudioDeviceManager::startAudioOutput(int) (audiodevicemanager.cpp:361)
==30323==    by 0x5412B0C: AudioDeviceManager::addAudioSink(AudioFifo*, MessageQueue*, int) (audiodevicemanager.cpp:229)
==30323==    by 0x33F96DE7: BFMDemod::BFMDemod(DeviceSourceAPI*) (bfmdemod.cpp:56)
==30323==    by 0x33FB03F2: non-virtual thunk to BFMPlugin::createRxChannelBS(DeviceSourceAPI*) (bfmplugin.cpp:62)
==30323==    by 0x4F47F25: DeviceUISet::loadRxChannelSettings(Preset const*, PluginAPI*) (deviceuiset.cpp:199)
==30323==    by 0x4EA51EA: MainWindow::loadPresetSettings(Preset const*, int) (mainwindow.cpp:575)
==30323==    by 0x4EAC81B: MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) (mainwindow.cpp:176)
==30323==    by 0x10A49B: runQtApplication(int, char**, qtwebapp::LoggerWithFile*) (main.cpp:120)
==30323==    by 0x109B38: main (main.cpp:131)
2018-04-21 18:52:20 -07:00
..
CMakeLists.txt
qrtplib.pro
rtcpapppacket.cpp
rtcpapppacket.h
rtcpbyepacket.cpp
rtcpbyepacket.h
rtcpcompoundpacket.cpp
rtcpcompoundpacket.h
rtcpcompoundpacketbuilder.cpp
rtcpcompoundpacketbuilder.h
rtcppacket.h
rtcppacketbuilder.cpp
rtcppacketbuilder.h
rtcprrpacket.cpp
rtcprrpacket.h
rtcpscheduler.cpp
rtcpscheduler.h
rtcpsdesinfo.cpp
rtcpsdesinfo.h
rtcpsdespacket.cpp
rtcpsdespacket.h
rtcpsrpacket.cpp qrtplib: replaced size_t by std::size_t 2018-02-28 13:31:44 +01:00
rtcpsrpacket.h
rtcpunknownpacket.h
rtpaddress.cpp
rtpaddress.h
rtpcollisionlist.cpp
rtpcollisionlist.h
rtpconfig.h
rtpdefines.h
rtpendian.h
rtperrors.cpp qrtplib: removed memory management 2018-02-27 23:05:46 +01:00
rtperrors.h
rtpinternalsourcedata.cpp
rtpinternalsourcedata.h
rtpinternalutils.h
rtpkeyhashtable.h
rtplibraryversioninternal.h
rtppacket.cpp
rtppacket.h
rtppacketbuilder.cpp
rtppacketbuilder.h
rtprandom.cpp
rtprandom.h
rtprandomrand48.cpp
rtprandomrand48.h
rtprandomrands.cpp
rtprandomrands.h
rtprandomurandom.cpp
rtprandomurandom.h
rtprawpacket.h
rtpsession.cpp qrtplib: clear buffer fed to RTPSession::CreateCNAME 2018-04-21 18:52:20 -07:00
rtpsession.h
rtpsessionparams.cpp
rtpsessionparams.h
rtpsessionsources.cpp
rtpsessionsources.h
rtpsocketutil.h
rtpsourcedata.cpp
rtpsourcedata.h
rtpsources.cpp
rtpsources.h
rtpstructs.h
rtptimeutilities.cpp
rtptimeutilities.h
rtptransmitter.h
rtptypes.h
rtptypes_win.h
rtpudptransmitter.cpp
rtpudptransmitter.h