Re: [PATCH net] dccp: call inet_add_protocol after register_pernet_subsys in dccp_v6_init

2017-06-20 Thread David Miller
From: Xin Long 
Date: Tue, 20 Jun 2017 15:44:44 +0800

> Patch "call inet_add_protocol after register_pernet_subsys in dccp_v4_init"
> fixed a null pointer dereference issue for dccp_ipv4 module.
> 
> The same fix is needed for dccp_ipv6 module.
> 
> Signed-off-by: Xin Long 

Applied.


[PATCH net] dccp: call inet_add_protocol after register_pernet_subsys in dccp_v6_init

2017-06-20 Thread Xin Long
Patch "call inet_add_protocol after register_pernet_subsys in dccp_v4_init"
fixed a null pointer dereference issue for dccp_ipv4 module.

The same fix is needed for dccp_ipv6 module.

Signed-off-by: Xin Long 
---
 net/dccp/ipv6.c | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
index 9926211..4fccc0c 100644
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -1098,33 +1098,33 @@ static int __init dccp_v6_init(void)
 {
int err = proto_register(_v6_prot, 1);
 
-   if (err != 0)
+   if (err)
goto out;
 
-   err = inet6_add_protocol(_v6_protocol, IPPROTO_DCCP);
-   if (err != 0)
-   goto out_unregister_proto;
-
inet6_register_protosw(_v6_protosw);
 
err = register_pernet_subsys(_v6_ops);
-   if (err != 0)
+   if (err)
goto out_destroy_ctl_sock;
+
+   err = inet6_add_protocol(_v6_protocol, IPPROTO_DCCP);
+   if (err)
+   goto out_unregister_proto;
+
 out:
return err;
-
+out_unregister_proto:
+   unregister_pernet_subsys(_v6_ops);
 out_destroy_ctl_sock:
-   inet6_del_protocol(_v6_protocol, IPPROTO_DCCP);
inet6_unregister_protosw(_v6_protosw);
-out_unregister_proto:
proto_unregister(_v6_prot);
goto out;
 }
 
 static void __exit dccp_v6_exit(void)
 {
-   unregister_pernet_subsys(_v6_ops);
inet6_del_protocol(_v6_protocol, IPPROTO_DCCP);
+   unregister_pernet_subsys(_v6_ops);
inet6_unregister_protosw(_v6_protosw);
proto_unregister(_v6_prot);
 }
-- 
2.1.0