Merge pull request #13 from samhocevar-forks/fix/audio-buffer-size

Fix a potential crash in audio decoding
This commit is contained in:
Replicate
2022-10-25 22:47:21 +03:00
committed by GitHub
+7
View File
@@ -24,6 +24,7 @@ type AudioStream struct {
baseStream
swrCtx *C.SwrContext
buffer *C.uint8_t
bufferSize C.int
}
// ChannelCount returns the number of channels
@@ -109,9 +110,15 @@ func (audio *AudioStream) ReadAudioFrame() (*AudioFrame, bool, error) {
"%d: couldn't get the max buffer size", maxBufferSize)
}
if maxBufferSize > audio.bufferSize {
C.av_free(unsafe.Pointer(audio.buffer))
audio.buffer = nil
}
if audio.buffer == nil {
audio.buffer = (*C.uint8_t)(unsafe.Pointer(
C.av_malloc(bufferSize(maxBufferSize))))
audio.bufferSize = maxBufferSize
if audio.buffer == nil {
return nil, false, fmt.Errorf(