diff options
| author | Jeff Epler <jepler@gmail.com> | 2019-12-11 22:04:10 -0600 |
|---|---|---|
| committer | Jeff Epler <jepler@gmail.com> | 2019-12-11 22:04:10 -0600 |
| commit | 8c841af9461eba6252690c38bc3e726f2fd09e8b (patch) | |
| tree | 83958128f0a017a1bc79e8573f7ddc30f52e48e5 /shared-module | |
| parent | 024ba978ec909d39d411a74b443d2ffa20250fa6 (diff) | |
MP3File: Avoid crash in get_buffer when deinitted
When a playing mp3 is deinitted, it's possible to reach get_buffer,
but all the internal pointers are NULL. This would lead to a hard fault.
Avoid it by returning GET_BUFFER_ERROR instead.
Diffstat (limited to 'shared-module')
| -rw-r--r-- | shared-module/audiomp3/MP3File.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/shared-module/audiomp3/MP3File.c b/shared-module/audiomp3/MP3File.c index cabb46105..f0c4adc26 100644 --- a/shared-module/audiomp3/MP3File.c +++ b/shared-module/audiomp3/MP3File.c @@ -227,6 +227,9 @@ audioio_get_buffer_result_t audiomp3_mp3file_get_buffer(audiomp3_mp3file_obj_t* uint8_t channel, uint8_t** bufptr, uint32_t* buffer_length) { + if (!self->inbuf) { + return GET_BUFFER_ERROR; + } if (!single_channel) { channel = 0; } |
