return !memcmp(a1, a2, blob_pad_len(a1));
}
+
+struct blob_attr *
+blob_memdup(struct blob_attr *attr)
+{
+ struct blob_attr *ret;
+ int size = blob_pad_len(attr);
+
+ ret = malloc(size);
+ if (!ret)
+ return NULL;
+
+ memcpy(ret, attr, size);
+ return ret;
+}
extern struct blob_attr *blob_put(struct blob_buf *buf, int id, const void *ptr, int len);
extern bool blob_check_type(const void *ptr, int len, int type);
extern int blob_parse(struct blob_attr *attr, struct blob_attr **data, const struct blob_attr_info *info, int max);
+extern struct blob_attr *blob_memdup(struct blob_attr *attr);
static inline struct blob_attr *
blob_put_string(struct blob_buf *buf, int id, const char *str)