|
@@ -265,7 +265,7 @@ static int dn_fib_nh_match(struct rtmsg *r, struct nlmsghdr *nlh, struct dn_kern
|
|
|
|
|
|
static inline size_t dn_fib_nlmsg_size(struct dn_fib_info *fi)
|
|
|
{
|
|
|
- size_t payload = NLMSG_ALIGN(struct rtmsg)
|
|
|
+ size_t payload = NLMSG_ALIGN(sizeof(struct rtmsg))
|
|
|
+ nla_total_size(4) /* RTA_TABLE */
|
|
|
+ nla_total_size(2) /* RTA_DST */
|
|
|
+ nla_total_size(4); /* RTA_PRIORITY */
|
|
@@ -361,7 +361,7 @@ static void dn_rtmsg_fib(int event, struct dn_fib_node *f, int z, u32 tb_id,
|
|
|
u32 pid = req ? req->pid : 0;
|
|
|
int err = -ENOBUFS;
|
|
|
|
|
|
- skb = nlmsg_new(dn_fib_nlmsg_size(DN_FIB_INFO(f), GFP_KERNEL));
|
|
|
+ skb = nlmsg_new(dn_fib_nlmsg_size(DN_FIB_INFO(f)), GFP_KERNEL);
|
|
|
if (skb == NULL)
|
|
|
goto errout;
|
|
|
|