From 3b881401f1036127509ea4579a90c1bd696de97a Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 4 Jan 2016 12:43:49 +0000 Subject: [PATCH] Added some null pointer checks to createWriterFor methods --- modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp | 2 +- modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp | 2 +- .../codecs/juce_LAMEEncoderAudioFormat.cpp | 3 +++ .../juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp | 6 +++++- modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp index 73515f3d6d..b6cb306399 100644 --- a/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp @@ -1003,7 +1003,7 @@ AudioFormatWriter* AiffAudioFormat::createWriterFor (OutputStream* out, const StringPairArray& metadataValues, int /*qualityOptionIndex*/) { - if (getPossibleBitDepths().contains (bitsPerSample)) + if (out != nullptr && getPossibleBitDepths().contains (bitsPerSample)) return new AiffAudioFormatWriter (out, sampleRate, numberOfChannels, (unsigned int) bitsPerSample, metadataValues); return nullptr; diff --git a/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp index 3d257d1374..43972b60db 100644 --- a/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp @@ -536,7 +536,7 @@ AudioFormatWriter* FlacAudioFormat::createWriterFor (OutputStream* out, const StringPairArray& /*metadataValues*/, int qualityOptionIndex) { - if (getPossibleBitDepths().contains (bitsPerSample)) + if (out != nullptr && getPossibleBitDepths().contains (bitsPerSample)) { ScopedPointer w (new FlacWriter (out, sampleRate, numberOfChannels, (uint32) bitsPerSample, qualityOptionIndex)); diff --git a/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp index 9eda5014b0..8be87bf689 100644 --- a/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp @@ -205,6 +205,9 @@ AudioFormatWriter* LAMEEncoderAudioFormat::createWriterFor (OutputStream* stream const StringPairArray& metadataValues, int qualityOptionIndex) { + if (streamToWriteTo == nullptr) + return nullptr; + int vbr = 4; int cbr = 0; diff --git a/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp index b396c2d02b..454156f4f4 100644 --- a/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp @@ -483,8 +483,12 @@ AudioFormatWriter* OggVorbisAudioFormat::createWriterFor (OutputStream* out, const StringPairArray& metadataValues, int qualityOptionIndex) { + if (out == nullptr) + return nullptr; + ScopedPointer w (new OggWriter (out, sampleRate, numChannels, - (unsigned int) bitsPerSample, qualityOptionIndex, metadataValues)); + (unsigned int) bitsPerSample, + qualityOptionIndex, metadataValues)); return w->ok ? w.release() : nullptr; } diff --git a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp index 653996ea81..75603b1524 100644 --- a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp @@ -1606,7 +1606,7 @@ AudioFormatWriter* WavAudioFormat::createWriterFor (OutputStream* out, double sa unsigned int numChannels, int bitsPerSample, const StringPairArray& metadataValues, int /*qualityOptionIndex*/) { - if (getPossibleBitDepths().contains (bitsPerSample)) + if (out != nullptr && getPossibleBitDepths().contains (bitsPerSample)) return new WavAudioFormatWriter (out, sampleRate, (unsigned int) numChannels, (unsigned int) bitsPerSample, metadataValues);