Browse Source

Protect against null data

Signed-off-by: falkTX <falktx@falktx.com>
pull/302/head
falkTX 3 years ago
parent
commit
2466710280
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 13 additions and 7 deletions
  1. +1
    -0
      distrho/src/jackbridge/JackBridge.cpp
  2. +12
    -7
      distrho/src/jackbridge/RtAudioBridge.hpp

+ 1
- 0
distrho/src/jackbridge/JackBridge.cpp View File

@@ -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;
}


+ 12
- 7
distrho/src/jackbridge/RtAudioBridge.hpp View File

@@ -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



Loading…
Cancel
Save