diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-06-24 23:07:47 +0400 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-06-24 23:07:47 +0400 |
commit | f1494cde4d22f5df91d581ef7242e80b1cb367de (patch) | |
tree | e63019c7e255fdb2f032ead847eb62f661d6abaf /blobmsg.c | |
parent | 63bc6593c37b4757199fb65ec1fb607c5e5190e3 (diff) |
blobmsg: add blobmsg_check_attr_list() to validate element types of arrays and tables
Diffstat (limited to 'blobmsg.c')
-rw-r--r-- | blobmsg.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -61,6 +61,22 @@ bool blobmsg_check_attr(const struct blob_attr *attr, bool name) return blob_check_type(data, len, blob_type[id]); } +bool blobmsg_check_attr_list(const struct blob_attr *attr, int type, bool name) +{ + struct blob_attr *cur; + int rem; + + blobmsg_for_each_attr(cur, attr, rem) { + if (blobmsg_type(cur) != type) + return false; + + if (!blobmsg_check_attr(cur, name)) + return false; + } + + return true; +} + int blobmsg_parse(const struct blobmsg_policy *policy, int policy_len, struct blob_attr **tb, void *data, int len) { |