From c830644ba156e04ced9cf6c17e921d9750ebab74 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Fri, 24 Jul 2015 15:13:02 -0700 Subject: [PATCH] Do not allocate zero-sized arrays to stop leaking them. Fix new[]/delete mismatch --- src/libtomahawk/audio/MediaStream.cpp | 2 +- src/libtomahawk/audio/Qnr_IoDeviceStream.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libtomahawk/audio/MediaStream.cpp b/src/libtomahawk/audio/MediaStream.cpp index 895f09870..955c3be9f 100644 --- a/src/libtomahawk/audio/MediaStream.cpp +++ b/src/libtomahawk/audio/MediaStream.cpp @@ -150,7 +150,7 @@ MediaStream::readDoneCallback ( const char *cookie, size_t bufferSize, void *buf Q_UNUSED(bufferSize); if ( ( m_type == Stream ) && buffer != nullptr && bufferSize > 0 ) { - delete static_cast< char* >( buffer ); + delete[] reinterpret_cast< char* >( buffer ); } return 0; diff --git a/src/libtomahawk/audio/Qnr_IoDeviceStream.cpp b/src/libtomahawk/audio/Qnr_IoDeviceStream.cpp index 8d30447c2..d57844849 100644 --- a/src/libtomahawk/audio/Qnr_IoDeviceStream.cpp +++ b/src/libtomahawk/audio/Qnr_IoDeviceStream.cpp @@ -95,8 +95,11 @@ QNR_IODeviceStream::needData( void** buffer ) return 0; } - *buffer = new char[data.size()]; - memcpy(*buffer, data.data(), data.size()); + if ( data.size() > 0 ) + { + *buffer = new char[data.size()]; + memcpy(*buffer, data.data(), data.size()); + } return data.size(); }