blobmsg: add missing endian conversions
[project/libubox.git] / blobmsg_json.c
index 3053fa3..96bfe28 100644 (file)
@@ -231,11 +231,14 @@ static void blobmsg_format_element(struct strbuf *s, struct blob_attr *attr, boo
        case BLOBMSG_TYPE_BOOL:
                sprintf(buf, "%s", *(uint8_t *)data ? "true" : "false");
                break;
+       case BLOBMSG_TYPE_INT16:
+               sprintf(buf, "%d", be16_to_cpu(*(uint16_t *)data));
+               break;
        case BLOBMSG_TYPE_INT32:
-               sprintf(buf, "%d", *(uint32_t *)data);
+               sprintf(buf, "%d", be32_to_cpu(*(uint32_t *)data));
                break;
        case BLOBMSG_TYPE_INT64:
-               sprintf(buf, "%lld", (long long int) *(uint64_t *)data);
+               sprintf(buf, "%lld", (long long int) be64_to_cpu(*(uint64_t *)data));
                break;
        case BLOBMSG_TYPE_STRING:
                blobmsg_format_string(s, data);