summaryrefslogtreecommitdiffstats
path: root/system.c
diff options
context:
space:
mode:
authorJuliusz Chroboczek <jch@pps.univ-paris-diderot.fr>2015-06-26 00:23:33 +0200
committerFelix Fietkau <nbd@openwrt.org>2015-07-06 23:16:47 +0200
commit8f33afd87f118bfea52f50f7787843b694a38e72 (patch)
tree1c878a02ec1f37d878734eb8c6c39a8643090e19 /system.c
parentc5cdda8f73aa99e4ec242e6980a1138c641d3614 (diff)
downloadunitd-8f33afd87f118bfea52f50f7787843b694a38e72.tar
unitd-8f33afd87f118bfea52f50f7787843b694a38e72.zip
Attempt to deal gracefully with allocation failures.
These should probably not happen in practice, but having an explicit error message may make debugging out-of-memory situations easier.
Diffstat (limited to 'system.c')
-rw-r--r--system.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/system.c b/system.c
index 77111f9..82c672e 100644
--- a/system.c
+++ b/system.c
@@ -144,6 +144,11 @@ static int system_board(struct ubus_context *ctx, struct ubus_object *obj,
continue;
dest = blobmsg_alloc_string_buffer(&b, key, strlen(val));
+ if (!dest) {
+ ERROR("Failed to allocate blob.\n");
+ continue;
+ }
+
while (val && (ch = *(val++)) != 0) {
switch (ch) {
case '\'':