Skip to content

Commit

Permalink
Potential memory corruption problems in audiooutputbase
Browse files Browse the repository at this point in the history
  • Loading branch information
acediac authored and linuxdude42 committed Apr 9, 2022
1 parent 10df426 commit 81aeb49
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions mythtv/libs/libmyth/audio/audiooutputbase.cpp
Expand Up @@ -91,13 +91,18 @@ AudioOutputBase::~AudioOutputBase()
"~AudioOutputBase called, but KillAudio has not been called!");

// We got this from a subclass, delete it
delete m_outputSettings;
delete m_outputSettingsRaw;
if (m_outputSettings != m_outputSettingsDigital)
// These all seem to be the same pointer, avoid freeing multiple times
VBAUDIO(QString("m_outputSettings != m_outputSettingsDigital : %1").arg(m_outputSettings != m_outputSettingsDigital));
if (m_outputSettingsDigital != m_outputSettings)
{
if (m_outputSettingsDigitalRaw != m_outputSettingsDigital && m_outputSettingsDigitalRaw != m_outputSettings)
delete m_outputSettingsDigitalRaw;
delete m_outputSettingsDigital;
delete m_outputSettingsDigitalRaw;
}
VBAUDIO(QString("m_outputSettingsRaw != m_outputSettings %1").arg(m_outputSettingsRaw != m_outputSettings));
if (m_outputSettingsRaw != m_outputSettings)
delete m_outputSettingsRaw;
delete m_outputSettings;

if (m_kAudioSRCOutputSize > 0)
delete[] m_srcOut;
Expand Down Expand Up @@ -191,9 +196,9 @@ AudioOutputSettings* AudioOutputBase::GetOutputSettingsUsers(bool digital)
else if (m_outputSettingsDigital)
return m_outputSettingsDigital;

auto* aosettings = new AudioOutputSettings;

*aosettings = *GetOutputSettingsCleaned(digital);
//bugfix: don't allocate as GetOutputSettings will do it
//auto* aosettings = new AudioOutputSettings;
AudioOutputSettings* aosettings = GetOutputSettingsCleaned(digital);
aosettings->GetUsers();

if (digital)
Expand Down

1 comment on commit 81aeb49

@kmdewaal
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted in commit c370f51

Please sign in to comment.