batman-adv/main: Fix check on return value of rtnl_link_register

Message ID 20181224174926.20321-1-pakki001@umn.edu (mailing list archive)
State Changes Requested, archived
Delegated to: Simon Wunderlich
Headers
Series batman-adv/main: Fix check on return value of rtnl_link_register |

Commit Message

Aditya Pakki Dec. 24, 2018, 5:49 p.m. UTC
  rtnl_link_register() may fail and can impact registering the device.
The fix checks the return value and pushes the error upstream.

Signed-off-by: Aditya Pakki <pakki001@umn.edu>
---
 net/batman-adv/main.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
  

Comments

Sven Eckelmann Dec. 24, 2018, 6:43 p.m. UTC | #1
On Monday, 24 December 2018 18.49.26 CET Aditya Pakki wrote:
[...]
> diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
> index 69c0d85bceb3..e0007f242823 100644
> --- a/net/batman-adv/main.c
> +++ b/net/batman-adv/main.c
> @@ -109,7 +109,10 @@ static int __init batadv_init(void)
>  	batadv_debugfs_init();
>  
>  	register_netdevice_notifier(&batadv_hard_if_notifier);
> -	rtnl_link_register(&batadv_link_ops);
> +	ret = rtnl_link_register(&batadv_link_ops);
> +	if (ret < 0)
> +		return ret;
> +
>  	batadv_netlink_register();

Uhm, but shouldn't the already initialized parts be unregistered/uninitialized 
in this case?

Rejecting this patch because this could cause a new bug.

Also "Fixes: " line is missing

Kind regards,
	Sven
  
Sven Eckelmann Dec. 24, 2018, 6:46 p.m. UTC | #2
On Monday, 24 December 2018 18.49.26 CET Aditya Pakki wrote:
> rtnl_link_register() may fail and can impact registering the device.
> The fix checks the return value and pushes the error upstream.

Regarding the commit message - what is "batman-adv/main"? Shouldn't this be 
"batman-adv: "?

And the device can still be registered without batadv_link_ops - just not 
using rtnl.

Kind regards,
	Sven
  

Patch

diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index 69c0d85bceb3..e0007f242823 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -109,7 +109,10 @@  static int __init batadv_init(void)
 	batadv_debugfs_init();
 
 	register_netdevice_notifier(&batadv_hard_if_notifier);
-	rtnl_link_register(&batadv_link_ops);
+	ret = rtnl_link_register(&batadv_link_ops);
+	if (ret < 0)
+		return ret;
+
 	batadv_netlink_register();
 
 	pr_info("B.A.T.M.A.N. advanced %s (compatibility version %i) loaded\n",