[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <MN2PR15MB35819EB2C946639FE0C3C6579A9A0@MN2PR15MB3581.namprd15.prod.outlook.com>
Date: Tue, 8 Oct 2019 13:52:29 +0000
From: Jon Maloy <jon.maloy@...csson.com>
To: Jiri Pirko <jiri@...nulli.us>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC: "davem@...emloft.net" <davem@...emloft.net>,
"ying.xue@...driver.com" <ying.xue@...driver.com>,
"johannes.berg@...el.com" <johannes.berg@...el.com>,
"mkubecek@...e.cz" <mkubecek@...e.cz>,
"mlxsw@...lanox.com" <mlxsw@...lanox.com>
Subject: RE: [patch net-next] net: tipc: prepare attrs in
__tipc_nl_compat_dumpit()
Acked. Thanks Jiri.
///jon
> -----Original Message-----
> From: Jiri Pirko <jiri@...nulli.us>
> Sent: 8-Oct-19 07:02
> To: netdev@...r.kernel.org
> Cc: davem@...emloft.net; Jon Maloy <jon.maloy@...csson.com>;
> ying.xue@...driver.com; johannes.berg@...el.com; mkubecek@...e.cz;
> mlxsw@...lanox.com
> Subject: [patch net-next] net: tipc: prepare attrs in
> __tipc_nl_compat_dumpit()
>
> From: Jiri Pirko <jiri@...lanox.com>
>
> __tipc_nl_compat_dumpit() calls tipc_nl_publ_dump() which expects the
> attrs to be available by genl_dumpit_info(cb)->attrs. Add info struct and attr
> parsing in compat dumpit function.
>
> Reported-by: syzbot+8d37c50ffb0f52941a5e@...kaller.appspotmail.com
> Fixes: 057af7071344 ("net: tipc: have genetlink code to parse the attrs during
> dumpit")
>
> Signed-off-by: Jiri Pirko <jiri@...lanox.com>
> ---
> net/tipc/netlink_compat.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c index
> 4950b754dacd..17a529739f8d 100644
> --- a/net/tipc/netlink_compat.c
> +++ b/net/tipc/netlink_compat.c
> @@ -181,6 +181,7 @@ static int __tipc_nl_compat_dumpit(struct
> tipc_nl_compat_cmd_dump *cmd,
> struct tipc_nl_compat_msg *msg,
> struct sk_buff *arg)
> {
> + struct genl_dumpit_info info;
> int len = 0;
> int err;
> struct sk_buff *buf;
> @@ -191,6 +192,7 @@ static int __tipc_nl_compat_dumpit(struct
> tipc_nl_compat_cmd_dump *cmd,
> memset(&cb, 0, sizeof(cb));
> cb.nlh = (struct nlmsghdr *)arg->data;
> cb.skb = arg;
> + cb.data = &info;
>
> buf = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
> if (!buf)
> @@ -209,6 +211,13 @@ static int __tipc_nl_compat_dumpit(struct
> tipc_nl_compat_cmd_dump *cmd,
> goto err_out;
> }
>
> + info.attrs = attrbuf;
> + err = nlmsg_parse_deprecated(cb.nlh, GENL_HDRLEN, attrbuf,
> + tipc_genl_family.maxattr,
> + tipc_genl_family.policy, NULL);
> + if (err)
> + goto err_out;
> +
> do {
> int rem;
>
> --
> 2.21.0
Powered by blists - more mailing lists