route/link: fix memleaks in link_msg_parser()

http://lists.infradead.org/pipermail/libnl/2015-May/001880.html

Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
Thomas Haller 2015-05-13 14:46:08 +02:00
parent 4818248634
commit 75dcd01756

View file

@ -495,8 +495,10 @@ static int link_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who,
link->ce_msgtype = n->nlmsg_type;
if (!nlmsg_valid_hdr(n, sizeof(*ifi)))
return -NLE_MSG_TOOSHORT;
if (!nlmsg_valid_hdr(n, sizeof(*ifi))) {
err = -NLE_MSG_TOOSHORT;
goto errout;
}
ifi = nlmsg_data(n);
link->l_family = family = ifi->ifi_family;
@ -520,11 +522,11 @@ static int link_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who,
err = nlmsg_parse(n, sizeof(*ifi), tb, IFLA_MAX, real_link_policy);
if (err < 0)
return err;
goto errout;
err = rtnl_link_info_parse(link, tb);
if (err < 0)
return err;
goto errout;
if (tb[IFLA_NUM_VF]) {
link->l_num_vf = nla_get_u32(tb[IFLA_NUM_VF]);