Add a simple macro to determine an item's payload size, and use it in
message.c.
if (++items_count > KDBUS_MSG_MAX_ITEMS)
return -E2BIG;
- payload_size = item->size - KDBUS_ITEM_HEADER_SIZE;
+ payload_size = KDBUS_ITEM_PAYLOAD_SIZE(item);
switch (item->type) {
case KDBUS_ITEM_PAYLOAD_VEC:
/* generic access and iterators over a stream of items */
#define KDBUS_ITEM_HEADER_SIZE offsetof(struct kdbus_item, data)
+#define KDBUS_ITEM_PAYLOAD_SIZE(_i) ((_i)->size - KDBUS_ITEM_HEADER_SIZE)
#define KDBUS_ITEM_SIZE(_s) KDBUS_ALIGN8(KDBUS_ITEM_HEADER_SIZE + (_s))
#define KDBUS_ITEM_NEXT(_i) (typeof(_i))(((u8 *)_i) + KDBUS_ALIGN8((_i)->size))
#define KDBUS_ITEMS_SIZE(_h, _is) ((_h)->size - offsetof(typeof(*_h), _is))