summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorKrzysztof Halasa <khc@pm.waw.pl>2011-01-06 16:23:01 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2011-01-07 10:21:22 +0100
commitc5baa0edc4a70c2f44cb7422e2b47ab5c96570ed (patch)
treed45c280198754e96276f6a633a206233504790b3 /lib
parentc99d28ca568a6e0d713c42bfbb9cd5310588d857 (diff)
downloadbarebox-c5baa0edc4a70c2f44cb7422e2b47ab5c96570ed.tar.gz
barebox-c5baa0edc4a70c2f44cb7422e2b47ab5c96570ed.tar.xz
Fix error handling with malloc, memalign etc. Introduce xmemalign().
The idea is to panic() when there is no memory available for normal operation. Exception: code which can consume arbitrary amount of RAM (example: files allocated in ramfs) must report error instead of panic(). This patch also fixes code which didn't check for NULL from malloc() etc. Usage: malloc(), memalign() return NULL when out of RAM. xmalloc(), xmemalign() always return non-NULL or panic(). Signed-off-by: Krzysztof HaƂasa <khc@pm.waw.pl> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'lib')
-rw-r--r--lib/xfuncs.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/xfuncs.c b/lib/xfuncs.c
index 01a64cf5eb..71394fff29 100644
--- a/lib/xfuncs.c
+++ b/lib/xfuncs.c
@@ -70,3 +70,11 @@ char *xstrdup(const char *s)
}
EXPORT_SYMBOL(xstrdup);
+void* xmemalign(size_t alignment, size_t bytes)
+{
+ void *p = memalign(alignment, bytes);
+ if (!p)
+ panic("ERROR: out of memory\n");
+ return p;
+}
+EXPORT_SYMBOL(xmemalign);