bugfix: dealing with potential buffer overflow issues
This commit is contained in:
parent
3907377afa
commit
2bd91c7d8e
1 changed files with 11 additions and 2 deletions
|
|
@ -8,6 +8,8 @@
|
|||
|
||||
START_NAMESPACE_DISTRHO
|
||||
|
||||
const int BUFFER_SIZE = 16384;
|
||||
|
||||
class SquidgeDistortion : public Plugin {
|
||||
|
||||
public:
|
||||
|
|
@ -99,6 +101,13 @@ protected:
|
|||
}
|
||||
|
||||
void run(const float **inputs, float **outputs, uint32_t frames) override {
|
||||
if (frames > BUFFER_SIZE) {
|
||||
for (uint32_t i = 0; i < frames; ++i) {
|
||||
outputs[0][i] = inputs[0][i];
|
||||
outputs[1][i] = inputs[1][i];
|
||||
}
|
||||
return;
|
||||
}
|
||||
gain_.processStereo(inputs[0], inputs[1], wetBufferL_, wetBufferR_, frames);
|
||||
clipper_.processStereo(wetBufferL_, wetBufferR_, wetBufferL_, wetBufferR_,
|
||||
frames);
|
||||
|
|
@ -113,8 +122,8 @@ private:
|
|||
Gain gain_;
|
||||
Clipper clipper_;
|
||||
Mixer<2> mixer_;
|
||||
float wetBufferL_[4096];
|
||||
float wetBufferR_[4096];
|
||||
float wetBufferL_[BUFFER_SIZE];
|
||||
float wetBufferR_[BUFFER_SIZE];
|
||||
|
||||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(SquidgeDistortion);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue