X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=system.c;h=fb7fbe48cbd945f694d373faf6c74f186a67dd69;hp=cdb54343885ee53c2521bea1882b6e4e72b90e85;hb=303eaecc18ca1d26af9d9105631000c8bdef11a0;hpb=c48b19bbe127551ffb2b6d02b33ef78865341cfc diff --git a/system.c b/system.c index cdb5434..fb7fbe4 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 '\'': @@ -206,15 +211,15 @@ static int system_info(struct ubus_context *ctx, struct ubus_object *obj, blobmsg_close_array(&b, c); c = blobmsg_open_table(&b, "memory"); - blobmsg_add_u32(&b, "total", info.mem_unit * info.totalram); - blobmsg_add_u32(&b, "free", info.mem_unit * info.freeram); - blobmsg_add_u32(&b, "shared", info.mem_unit * info.sharedram); - blobmsg_add_u32(&b, "buffered", info.mem_unit * info.bufferram); + blobmsg_add_u64(&b, "total", info.mem_unit * info.totalram); + blobmsg_add_u64(&b, "free", info.mem_unit * info.freeram); + blobmsg_add_u64(&b, "shared", info.mem_unit * info.sharedram); + blobmsg_add_u64(&b, "buffered", info.mem_unit * info.bufferram); blobmsg_close_table(&b, c); c = blobmsg_open_table(&b, "swap"); - blobmsg_add_u32(&b, "total", info.mem_unit * info.totalswap); - blobmsg_add_u32(&b, "free", info.mem_unit * info.freeswap); + blobmsg_add_u64(&b, "total", info.mem_unit * info.totalswap); + blobmsg_add_u64(&b, "free", info.mem_unit * info.freeswap); blobmsg_close_table(&b, c); ubus_send_reply(ctx, req, b.head); @@ -277,7 +282,7 @@ static int watchdog_set(struct ubus_context *ctx, struct ubus_object *obj, if (tb[WDT_STOP]) watchdog_set_stopped(blobmsg_get_bool(tb[WDT_STOP])); - if (watchdog_fd() < 0) + if (watchdog_fd() == NULL) status = "offline"; else if (watchdog_get_stopped()) status = "stopped";