[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3731ad8f-55b4-154e-28b7-0ee6cea827b8@gmail.com>
Date: Wed, 9 Mar 2022 19:51:07 -0700
From: David Ahern <dsahern@...il.com>
To: Jakub Kicinski <kuba@...nel.org>, davem@...emloft.net
Cc: netdev@...r.kernel.org, jiri@...nulli.us,
George Shuklin <george.shuklin@...il.com>
Subject: Re: [PATCH net-next 2/2] net: limit altnames to 64k total
On 3/9/22 11:29 AM, Jakub Kicinski wrote:
> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
> index aa05e89cc47c..159c9c61e6af 100644
> --- a/net/core/rtnetlink.c
> +++ b/net/core/rtnetlink.c
> @@ -3652,12 +3652,23 @@ static int rtnl_alt_ifname(int cmd, struct net_device *dev, struct nlattr *attr,
> bool *changed, struct netlink_ext_ack *extack)
> {
> char *alt_ifname;
> + size_t size;
> int err;
>
> err = nla_validate(attr, attr->nla_len, IFLA_MAX, ifla_policy, extack);
> if (err)
> return err;
>
> + if (cmd == RTM_NEWLINKPROP) {
> + size = rtnl_prop_list_size(dev);
> + size += nla_total_size(ALTIFNAMSIZ);
> + if (size >= U16_MAX) {
> + NL_SET_ERR_MSG(extack,
> + "effective property list too long");
> + return -EINVAL;
> + }
> + }
> +
> alt_ifname = nla_strdup(attr, GFP_KERNEL_ACCOUNT);
> if (!alt_ifname)
> return -ENOMEM;
this tests the existing property size. Don't you want to test the size
with the alt_ifname - does it make the list go over 64kB?
Powered by blists - more mailing lists