On Sat, Jan 05, 2019 at 10:18:07AM -0600, Aditya Pakki wrote: > nla_put() may fail. The fix adds a check for its return value, and > returns -EMSGSIZE if it fails, post canceling netlink msg. > > Signed-off-by: Aditya Pakki <pakki001@xxxxxxx> > --- > drivers/infiniband/core/addr.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c > index 0dce94e3c495..e847b34bacd1 100644 > --- a/drivers/infiniband/core/addr.c > +++ b/drivers/infiniband/core/addr.c > @@ -178,7 +178,10 @@ static int ib_nl_ip_send_msg(struct rdma_dev_addr *dev_addr, > /* Construct the family header first */ > header = skb_put(skb, NLMSG_ALIGN(sizeof(*header))); > header->ifindex = dev_addr->bound_dev_if; > - nla_put(skb, attrtype, size, daddr); > + if (nla_put(skb, attrtype, size, daddr)) { > + nlmsg_cancel(skb, nlh); It should be nlmsg_free() and not nlmsg_cancel() > + return -EMSGSIZE; > + } > > /* Repair the nlmsg header length */ > nlmsg_end(skb, nlh); > -- > 2.17.1 >
Attachment:
signature.asc
Description: PGP signature