From f2108ba84d0295bfbf0db7fa90934c05073fecf2 Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Sun, 23 Oct 2016 05:07:25 -0400 Subject: [PATCH] fix memory leak and properly initialize some structs --- src/sound/audiostr.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/sound/audiostr.cpp b/src/sound/audiostr.cpp index 394e5c2..3e3f771 100644 --- a/src/sound/audiostr.cpp +++ b/src/sound/audiostr.cpp @@ -354,6 +354,8 @@ void WaveFile::Init() m_nBytesPlayed = 0; m_total_uncompressed_bytes_read = 0; m_max_uncompressed_bytes_to_read = AS_HIGHEST_MAX; + SDL_zero(m_wfmt); + SDL_zero(m_wfxDest); m_hStream_open = 0; m_abort_next_read = false; @@ -363,6 +365,10 @@ void WaveFile::Close() { // Free memory if (m_pwfmt_original) { + if (m_pwfmt_original->extra_data) { + free(m_pwfmt_original->extra_data); + } + free(m_pwfmt_original); m_pwfmt_original = NULL; } @@ -395,6 +401,8 @@ bool WaveFile::Open(const char *pszFilename) goto OPEN_ERROR; } + SDL_zerop(m_pwfmt_original); + cfp = cfopen(pszFilename, "rb"); if (cfp == NULL) { @@ -534,6 +542,10 @@ OPEN_ERROR: fRtn = false; if (m_pwfmt_original) { + if (m_pwfmt_original->extra_data) { + free(m_pwfmt_original->extra_data); + } + free(m_pwfmt_original); m_pwfmt_original = NULL; } -- 2.39.2