X-Git-Url: http://git.openwrt.org/?p=project%2Flibubox.git;a=blobdiff_plain;f=blobmsg.h;fp=blobmsg.h;h=b06ef597d8c6d836d9eecb9227e6825576ada13e;hp=797729870fbd449b057315dedf54b07032fe4fca;hb=c83a84afbef2b24f960ddeda0b5e2ab01fba6981;hpb=3c1b33b7d57ad8b8aeeab8babd48625b86532e0b diff --git a/blobmsg.h b/blobmsg.h index 7977298..b06ef59 100644 --- a/blobmsg.h +++ b/blobmsg.h @@ -71,8 +71,14 @@ static inline int blobmsg_type(const struct blob_attr *attr) static inline void *blobmsg_data(const struct blob_attr *attr) { - struct blobmsg_hdr *hdr = (struct blobmsg_hdr *) blob_data(attr); - char *data = (char *) blob_data(attr); + struct blobmsg_hdr *hdr; + char *data; + + if (!attr) + return NULL; + + hdr = (struct blobmsg_hdr *) blob_data(attr); + data = (char *) blob_data(attr); if (blob_is_extended(attr)) data += blobmsg_hdrlen(be16_to_cpu(hdr->namelen)); @@ -84,6 +90,9 @@ static inline int blobmsg_data_len(const struct blob_attr *attr) { uint8_t *start, *end; + if (!attr) + return 0; + start = (uint8_t *) blob_data(attr); end = (uint8_t *) blobmsg_data(attr);