summaryrefslogtreecommitdiff
path: root/shared-module
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2019-12-11 22:04:10 -0600
committerJeff Epler <jepler@gmail.com>2019-12-11 22:04:10 -0600
commit8c841af9461eba6252690c38bc3e726f2fd09e8b (patch)
tree83958128f0a017a1bc79e8573f7ddc30f52e48e5 /shared-module
parent024ba978ec909d39d411a74b443d2ffa20250fa6 (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.c3
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;
}