aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output/shout/shoutoutput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Output/shout/shoutoutput.cpp')
-rw-r--r--src/plugins/Output/shout/shoutoutput.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/Output/shout/shoutoutput.cpp b/src/plugins/Output/shout/shoutoutput.cpp
index 9ca6e9a95..90a4b0b49 100644
--- a/src/plugins/Output/shout/shoutoutput.cpp
+++ b/src/plugins/Output/shout/shoutoutput.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2017 by Ilya Kotov *
+ * Copyright (C) 2017-2019 by Ilya Kotov *
* forkotov02@ya.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -98,7 +98,16 @@ qint64 ShoutOutput::writeAudio(unsigned char *data, qint64 maxSize)
if(required_frames > m_soxr_buf_frames)
{
m_soxr_buf_frames = required_frames;
+ float *tmp = m_soxr_buf;
m_soxr_buf = (float *)realloc(m_soxr_buf, m_soxr_buf_frames * sizeof(float) * chan);
+ if(!m_soxr_buf)
+ {
+ qWarning("ShoutOutput: unable to allocate %zu bytes", m_soxr_buf_frames * sizeof(float) * chan);
+ m_soxr_buf_frames = 0;
+ if(tmp)
+ free(tmp);
+ return -1;
+ }
}
size_t done = 0;