summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2014-01-05 20:56:16 +0100
committerFrank Gevaerts <frank@gevaerts.be>2014-01-05 20:56:55 +0100
commit2a63502c09bc72cd1d0f75b9c1bb13b53c7a35c4 (patch)
tree3653263b370d11f058faa4d5fa95d07cc2e6cc69
parent463d343102c491d59a0bdb31debe5b11c92e7877 (diff)
downloadrockbox-2a63502c09bc72cd1d0f75b9c1bb13b53c7a35c4.tar.gz
rockbox-2a63502c09bc72cd1d0f75b9c1bb13b53c7a35c4.zip
Check that core_alloc_maximum() returned something useful, and panic if not
Change-Id: I7ae40db0f81d1d51742501936b13b387f94a25e5
-rw-r--r--firmware/usbstack/usb_storage.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c
index a3b867319d..a439ad4bf0 100644
--- a/firmware/usbstack/usb_storage.c
+++ b/firmware/usbstack/usb_storage.c
@@ -35,6 +35,7 @@
35#include "timefuncs.h" 35#include "timefuncs.h"
36#endif 36#endif
37#include "core_alloc.h" 37#include "core_alloc.h"
38#include "panic.h"
38 39
39#ifdef USB_USE_RAMDISK 40#ifdef USB_USE_RAMDISK
40#define RAMDISK_SIZE 2048 41#define RAMDISK_SIZE 2048
@@ -460,6 +461,10 @@ void usb_storage_init_connection(void)
460 static struct buflib_callbacks dummy_ops; 461 static struct buflib_callbacks dummy_ops;
461 462
462 usb_handle = core_alloc_maximum("usb storage", &bufsize, &dummy_ops); 463 usb_handle = core_alloc_maximum("usb storage", &bufsize, &dummy_ops);
464 if (usb_handle < 0)
465 panicf("%s(): OOM", __func__);
466 if (bufsize < ALLOCATE_BUFFER_SIZE + MAX_CBW_SIZE + 31)
467 panicf("%s(): got only %d, not enough", __func__, bufsize);
463 buffer = core_get_data(usb_handle); 468 buffer = core_get_data(usb_handle);
464#if defined(UNCACHED_ADDR) && CONFIG_CPU != AS3525 469#if defined(UNCACHED_ADDR) && CONFIG_CPU != AS3525
465 cbw_buffer = (void *)UNCACHED_ADDR((unsigned int)(buffer+31) & 0xffffffe0); 470 cbw_buffer = (void *)UNCACHED_ADDR((unsigned int)(buffer+31) & 0xffffffe0);