X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=blobmsg.h;h=f2ab007546d95547709d3e8e46b3e5c180177455;hb=309d7d456f1934a75755504791ad23554a3359d6;hp=0b4565f023d71e7ca24a4577496956d4ab3e29e0;hpb=dee81b4f7902c5b59654f4e8fdbb153bb4f67c62;p=project%2Flibubox.git diff --git a/blobmsg.h b/blobmsg.h index 0b4565f..f2ab007 100644 --- a/blobmsg.h +++ b/blobmsg.h @@ -56,6 +56,11 @@ static inline const char *blobmsg_name(const struct blob_attr *attr) return (const char *) hdr->name; } +static inline int blobmsg_type(const struct blob_attr *attr) +{ + return blob_id(attr); +} + static inline void *blobmsg_data(const struct blob_attr *attr) { struct blobmsg_hdr *hdr = blob_data(attr); @@ -172,7 +177,7 @@ void blobmsg_add_string_buffer(struct blob_buf *buf); #define blobmsg_for_each_attr(pos, attr, rem) \ for (rem = blobmsg_data_len(attr), pos = blobmsg_data(attr); \ - (blob_pad_len(pos) <= rem) && \ + rem > 0 && (blob_pad_len(pos) <= rem) && \ (blob_pad_len(pos) >= sizeof(struct blob_attr)); \ rem -= blob_pad_len(pos), pos = blob_next(pos))