X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=blobmsg.c;h=8019c45b83edff22263cd550497f67d4c0bc49ed;hb=c83a84afbef2b24f960ddeda0b5e2ab01fba6981;hp=1e93376a27b65cf816f94f87738b98e8bb497ef6;hpb=1f019ceea1ed39286e6bccfb3ff936c22fe0f7c0;p=project%2Flibubox.git diff --git a/blobmsg.c b/blobmsg.c index 1e93376..8019c45 100644 --- a/blobmsg.c +++ b/blobmsg.c @@ -20,6 +20,7 @@ static const int blob_type[__BLOBMSG_TYPE_LAST] = { [BLOBMSG_TYPE_INT16] = BLOB_ATTR_INT16, [BLOBMSG_TYPE_INT32] = BLOB_ATTR_INT32, [BLOBMSG_TYPE_INT64] = BLOB_ATTR_INT64, + [BLOBMSG_TYPE_DOUBLE] = BLOB_ATTR_DOUBLE, [BLOBMSG_TYPE_STRING] = BLOB_ATTR_STRING, [BLOBMSG_TYPE_UNSPEC] = BLOB_ATTR_BINARY, }; @@ -134,6 +135,8 @@ int blobmsg_parse(const struct blobmsg_policy *policy, int policy_len, int i; memset(tb, 0, policy_len * sizeof(*tb)); + if (!data || !len) + return -EINVAL; pslen = alloca(policy_len); for (i = 0; i < policy_len; i++) { if (!policy[i].name)