Track the header size in order to avoid underflow
Signed-off-by: Felix Fietkau <nbd@nbd.name>
{
struct ubus_msg_buf_list *ubl;
- if (cl->txq_len + ub->len > UBUS_CLIENT_MAX_TXQ_LEN)
+ if (cl->txq_len + sizeof(ub->hdr) + ub->len > UBUS_CLIENT_MAX_TXQ_LEN)
return;
ubl = calloc(1, sizeof(struct ubus_msg_buf_list));
ubl->msg = ubus_msg_ref(ub);
list_add_tail(&ubl->list, &cl->tx_queue);
- cl->txq_len += ub->len;
+ cl->txq_len += ub->len + sizeof(ub->hdr);
}
/* takes the msgbuf reference */