From a4a5f5f33fd79ed625c280ac779f41d547846fe8 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Thu, 4 Mar 2021 09:16:13 -0500 Subject: [PATCH] Check core max allocations for valid handle fix rolo warnings Change-Id: Ia2c669a5517aec54e5b2c0dc5934c88a4f49f2a9 --- apps/radio/radioart.c | 7 +++++++ apps/tagtree.c | 3 +++ firmware/rolo.c | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/radio/radioart.c b/apps/radio/radioart.c index 87d37cd52c..1fd82dae68 100644 --- a/apps/radio/radioart.c +++ b/apps/radio/radioart.c @@ -33,6 +33,7 @@ #include "string-extra.h" #include "pathfuncs.h" #include "core_alloc.h" +#include "splash.h" #define MAX_RADIOART_IMAGES 10 struct radioart { @@ -202,6 +203,12 @@ void radioart_init(bool entering_screen) /* grab control over buffering */ size_t bufsize; int handle = core_alloc_maximum("radioart", &bufsize, &radioart_ops); + if (handle <0) + { + splash(HZ, "Radioart Failed - OOM"); + return; + } + buffering_reset(core_get_data(handle), bufsize); buf = core_get_data(handle); /* one-shot */ diff --git a/apps/tagtree.c b/apps/tagtree.c index 97e0c67b62..4b118f6d0d 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -1258,6 +1258,9 @@ void tagtree_init(void) menu = NULL; rootmenu = -1; tagtree_handle = core_alloc_maximum("tagtree", &tagtree_bufsize, &ops); + if (tagtree_handle < 0) + panicf("tagtree OOM"); + if (!parse_menu(FILE_SEARCH_INSTRUCTIONS)) { tagtree_unload(NULL); diff --git a/firmware/rolo.c b/firmware/rolo.c index f4db832b2b..f1bcd0718e 100644 --- a/firmware/rolo.c +++ b/firmware/rolo.c @@ -244,7 +244,7 @@ int rolo_load(const char* filename) rolo_handle = core_alloc_maximum("rolo", &filebuf_size, NULL); if (rolo_handle < 0) { - splash(HZ, "Rolo Failed - OOM"); + rolo_error("OOM"); return -1; }