diff mbox series

[net] bareudp: Fixed multiproto mode configuration

Message ID 1592199569-5243-1-git-send-email-martinvarghesenokia@gmail.com
State Changes Requested
Delegated to: David Miller
Headers show
Series [net] bareudp: Fixed multiproto mode configuration | expand

Commit Message

Martin Varghese June 15, 2020, 5:39 a.m. UTC
From: Martin <martin.varghese@nokia.com>

Code to handle multiproto configuration is missing.

Fixes: 4b5f67232d95 ("net: Special handling for IP & MPLS")
Signed-off-by: Martin <martin.varghese@nokia.com>
---
 drivers/net/bareudp.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

David Miller June 15, 2020, 7:55 p.m. UTC | #1
From: Martin Varghese <martinvarghesenokia@gmail.com>
Date: Mon, 15 Jun 2020 11:09:29 +0530

> From: Martin <martin.varghese@nokia.com>
> 
> Code to handle multiproto configuration is missing.
> 
> Fixes: 4b5f67232d95 ("net: Special handling for IP & MPLS")
> Signed-off-by: Martin <martin.varghese@nokia.com>

There are two bugs here.

'conf' is not initialized and can contain garbage, for all fields
not just the multiproto mode configuration.

And also the multiproto mode configuration is not looked at.

So there should be two patches, one for each bug.
diff mbox series

Patch

diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c
index efd1a1d..3dd46cd 100644
--- a/drivers/net/bareudp.c
+++ b/drivers/net/bareudp.c
@@ -552,6 +552,8 @@  static int bareudp_validate(struct nlattr *tb[], struct nlattr *data[],
 static int bareudp2info(struct nlattr *data[], struct bareudp_conf *conf,
 			struct netlink_ext_ack *extack)
 {
+	memset(conf, 0, sizeof(*conf));
+
 	if (!data[IFLA_BAREUDP_PORT]) {
 		NL_SET_ERR_MSG(extack, "port not specified");
 		return -EINVAL;
@@ -570,6 +572,9 @@  static int bareudp2info(struct nlattr *data[], struct bareudp_conf *conf,
 	if (data[IFLA_BAREUDP_SRCPORT_MIN])
 		conf->sport_min =  nla_get_u16(data[IFLA_BAREUDP_SRCPORT_MIN]);
 
+	if (data[IFLA_BAREUDP_MULTIPROTO_MODE])
+		conf->multi_proto_mode = true;
+
 	return 0;
 }