File tree Expand file tree Collapse file tree 3 files changed +28
-7
lines changed Expand file tree Collapse file tree 3 files changed +28
-7
lines changed Original file line number Diff line number Diff line change @@ -151,12 +151,20 @@ static int __init nf_tables_netdev_init(void)
151
151
152
152
nft_register_chain_type (& nft_filter_chain_netdev );
153
153
ret = register_pernet_subsys (& nf_tables_netdev_net_ops );
154
- if (ret < 0 ) {
155
- nft_unregister_chain_type (& nft_filter_chain_netdev );
156
- return ret ;
157
- }
158
- register_netdevice_notifier (& nf_tables_netdev_notifier );
154
+ if (ret )
155
+ goto err1 ;
156
+
157
+ ret = register_netdevice_notifier (& nf_tables_netdev_notifier );
158
+ if (ret )
159
+ goto err2 ;
160
+
159
161
return 0 ;
162
+
163
+ err2 :
164
+ unregister_pernet_subsys (& nf_tables_netdev_net_ops );
165
+ err1 :
166
+ nft_unregister_chain_type (& nft_filter_chain_netdev );
167
+ return ret ;
160
168
}
161
169
162
170
static void __exit nf_tables_netdev_exit (void )
Original file line number Diff line number Diff line change @@ -1522,9 +1522,16 @@ static int __init nfnetlink_queue_init(void)
1522
1522
goto cleanup_netlink_notifier ;
1523
1523
}
1524
1524
1525
- register_netdevice_notifier (& nfqnl_dev_notifier );
1525
+ status = register_netdevice_notifier (& nfqnl_dev_notifier );
1526
+ if (status < 0 ) {
1527
+ pr_err ("nf_queue: failed to register netdevice notifier\n" );
1528
+ goto cleanup_netlink_subsys ;
1529
+ }
1530
+
1526
1531
return status ;
1527
1532
1533
+ cleanup_netlink_subsys :
1534
+ nfnetlink_subsys_unregister (& nfqnl_subsys );
1528
1535
cleanup_netlink_notifier :
1529
1536
netlink_unregister_notifier (& nfqnl_rtnl_notifier );
1530
1537
unregister_pernet_subsys (& nfnl_queue_net_ops );
Original file line number Diff line number Diff line change @@ -89,6 +89,8 @@ static int tee_tg_check(const struct xt_tgchk_param *par)
89
89
return - EINVAL ;
90
90
91
91
if (info -> oif [0 ]) {
92
+ int ret ;
93
+
92
94
if (info -> oif [sizeof (info -> oif )- 1 ] != '\0' )
93
95
return - EINVAL ;
94
96
@@ -101,7 +103,11 @@ static int tee_tg_check(const struct xt_tgchk_param *par)
101
103
priv -> notifier .notifier_call = tee_netdev_event ;
102
104
info -> priv = priv ;
103
105
104
- register_netdevice_notifier (& priv -> notifier );
106
+ ret = register_netdevice_notifier (& priv -> notifier );
107
+ if (ret ) {
108
+ kfree (priv );
109
+ return ret ;
110
+ }
105
111
} else
106
112
info -> priv = NULL ;
107
113
You can’t perform that action at this time.
0 commit comments