commit 24667102808755a7c88ad29e3a893010e4ea3f7c
parent 20c2fce8321cceaeffd1f2e1d16806e6e3585359
Author: falkTX <falktx@falktx.com>
Date: Sat, 10 Jul 2021 23:41:44 +0100
Protect against null data
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/distrho/src/jackbridge/JackBridge.cpp b/distrho/src/jackbridge/JackBridge.cpp
@@ -2036,6 +2036,7 @@ uint32_t jackbridge_transport_query(const jack_client_t* client, jack_position_t
if (pos != nullptr)
{
// invalidate
+ std::memset(pos, 0, sizeof(*pos));
pos->unique_1 = 0;
pos->unique_2 = 1;
}
diff --git a/distrho/src/jackbridge/RtAudioBridge.hpp b/distrho/src/jackbridge/RtAudioBridge.hpp
@@ -177,7 +177,8 @@ struct RtAudioBridge {
if (self->jackProcessCallback == nullptr)
{
- std::memset((float*)outputBuffer, 0, sizeof(float)*numFrames*DISTRHO_PLUGIN_NUM_OUTPUTS);
+ if (outputBuffer != nullptr)
+ std::memset((float*)outputBuffer, 0, sizeof(float)*numFrames*DISTRHO_PLUGIN_NUM_OUTPUTS);
return 0;
}
@@ -186,14 +187,18 @@ struct RtAudioBridge {
uint i = 0;
# if DISTRHO_PLUGIN_NUM_INPUTS > 0
- float* const insPtr = (float*)inputBuffer;
- for (uint j=0; j<DISTRHO_PLUGIN_NUM_INPUTS; ++j, ++i)
- selfAudioBuffers[i] = insPtr + (j * numFrames);
+ if (float* const insPtr = (float*)inputBuffer)
+ {
+ for (uint j=0; j<DISTRHO_PLUGIN_NUM_INPUTS; ++j, ++i)
+ selfAudioBuffers[i] = insPtr + (j * numFrames);
+ }
# endif
# if DISTRHO_PLUGIN_NUM_OUTPUTS > 0
- float* const outsPtr = (float*)outputBuffer;
- for (uint j=0; j<DISTRHO_PLUGIN_NUM_OUTPUTS; ++j, ++i)
- selfAudioBuffers[i] = outsPtr + (j * numFrames);
+ if (float* const outsPtr = (float*)outputBuffer)
+ {
+ for (uint j=0; j<DISTRHO_PLUGIN_NUM_OUTPUTS; ++j, ++i)
+ selfAudioBuffers[i] = outsPtr + (j * numFrames);
+ }
# endif
#endif