diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/af_inet.c | 3 | ||||
-rw-r--r-- | net/ipv4/fib_frontend.c | 3 | ||||
-rw-r--r-- | net/ipv4/ip_options.c | 3 | ||||
-rw-r--r-- | net/ipv4/ip_output.c | 12 | ||||
-rw-r--r-- | net/ipv4/ip_sockglue.c | 12 | ||||
-rw-r--r-- | net/ipv4/ipvs/ip_vs_app.c | 6 | ||||
-rw-r--r-- | net/ipv4/multipath_wrandom.c | 10 | ||||
-rw-r--r-- | net/ipv4/netfilter/ip_nat_snmp_basic.c | 3 | ||||
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 3 |
9 files changed, 18 insertions, 37 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index a9d84f93442c..eaa150c33b04 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c | |||
@@ -147,8 +147,7 @@ void inet_sock_destruct(struct sock *sk) | |||
147 | BUG_TRAP(!sk->sk_wmem_queued); | 147 | BUG_TRAP(!sk->sk_wmem_queued); |
148 | BUG_TRAP(!sk->sk_forward_alloc); | 148 | BUG_TRAP(!sk->sk_forward_alloc); |
149 | 149 | ||
150 | if (inet->opt) | 150 | kfree(inet->opt); |
151 | kfree(inet->opt); | ||
152 | dst_release(sk->sk_dst_cache); | 151 | dst_release(sk->sk_dst_cache); |
153 | sk_refcnt_debug_dec(sk); | 152 | sk_refcnt_debug_dec(sk); |
154 | } | 153 | } |
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index 990633c09dfe..2267c1fad879 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c | |||
@@ -266,8 +266,7 @@ int ip_rt_ioctl(unsigned int cmd, void __user *arg) | |||
266 | if (tb) | 266 | if (tb) |
267 | err = tb->tb_insert(tb, &req.rtm, &rta, &req.nlh, NULL); | 267 | err = tb->tb_insert(tb, &req.rtm, &rta, &req.nlh, NULL); |
268 | } | 268 | } |
269 | if (rta.rta_mx) | 269 | kfree(rta.rta_mx); |
270 | kfree(rta.rta_mx); | ||
271 | } | 270 | } |
272 | rtnl_unlock(); | 271 | rtnl_unlock(); |
273 | return err; | 272 | return err; |
diff --git a/net/ipv4/ip_options.c b/net/ipv4/ip_options.c index bce4e875193b..dbe12da8d8b3 100644 --- a/net/ipv4/ip_options.c +++ b/net/ipv4/ip_options.c | |||
@@ -510,8 +510,7 @@ static int ip_options_get_finish(struct ip_options **optp, | |||
510 | kfree(opt); | 510 | kfree(opt); |
511 | return -EINVAL; | 511 | return -EINVAL; |
512 | } | 512 | } |
513 | if (*optp) | 513 | kfree(*optp); |
514 | kfree(*optp); | ||
515 | *optp = opt; | 514 | *optp = opt; |
516 | return 0; | 515 | return 0; |
517 | } | 516 | } |
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 17758234a3e3..df7f20da422d 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -1262,10 +1262,8 @@ int ip_push_pending_frames(struct sock *sk) | |||
1262 | 1262 | ||
1263 | out: | 1263 | out: |
1264 | inet->cork.flags &= ~IPCORK_OPT; | 1264 | inet->cork.flags &= ~IPCORK_OPT; |
1265 | if (inet->cork.opt) { | 1265 | kfree(inet->cork.opt); |
1266 | kfree(inet->cork.opt); | 1266 | inet->cork.opt = NULL; |
1267 | inet->cork.opt = NULL; | ||
1268 | } | ||
1269 | if (inet->cork.rt) { | 1267 | if (inet->cork.rt) { |
1270 | ip_rt_put(inet->cork.rt); | 1268 | ip_rt_put(inet->cork.rt); |
1271 | inet->cork.rt = NULL; | 1269 | inet->cork.rt = NULL; |
@@ -1289,10 +1287,8 @@ void ip_flush_pending_frames(struct sock *sk) | |||
1289 | kfree_skb(skb); | 1287 | kfree_skb(skb); |
1290 | 1288 | ||
1291 | inet->cork.flags &= ~IPCORK_OPT; | 1289 | inet->cork.flags &= ~IPCORK_OPT; |
1292 | if (inet->cork.opt) { | 1290 | kfree(inet->cork.opt); |
1293 | kfree(inet->cork.opt); | 1291 | inet->cork.opt = NULL; |
1294 | inet->cork.opt = NULL; | ||
1295 | } | ||
1296 | if (inet->cork.rt) { | 1292 | if (inet->cork.rt) { |
1297 | ip_rt_put(inet->cork.rt); | 1293 | ip_rt_put(inet->cork.rt); |
1298 | inet->cork.rt = NULL; | 1294 | inet->cork.rt = NULL; |
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index 2f0b47da5b37..4f2d87257309 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c | |||
@@ -202,8 +202,7 @@ int ip_ra_control(struct sock *sk, unsigned char on, void (*destructor)(struct s | |||
202 | if (ra->sk == sk) { | 202 | if (ra->sk == sk) { |
203 | if (on) { | 203 | if (on) { |
204 | write_unlock_bh(&ip_ra_lock); | 204 | write_unlock_bh(&ip_ra_lock); |
205 | if (new_ra) | 205 | kfree(new_ra); |
206 | kfree(new_ra); | ||
207 | return -EADDRINUSE; | 206 | return -EADDRINUSE; |
208 | } | 207 | } |
209 | *rap = ra->next; | 208 | *rap = ra->next; |
@@ -446,8 +445,7 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, | |||
446 | #endif | 445 | #endif |
447 | } | 446 | } |
448 | opt = xchg(&inet->opt, opt); | 447 | opt = xchg(&inet->opt, opt); |
449 | if (opt) | 448 | kfree(opt); |
450 | kfree(opt); | ||
451 | break; | 449 | break; |
452 | } | 450 | } |
453 | case IP_PKTINFO: | 451 | case IP_PKTINFO: |
@@ -828,10 +826,8 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, | |||
828 | 826 | ||
829 | err = ip_mc_msfilter(sk, msf, ifindex); | 827 | err = ip_mc_msfilter(sk, msf, ifindex); |
830 | mc_msf_out: | 828 | mc_msf_out: |
831 | if (msf) | 829 | kfree(msf); |
832 | kfree(msf); | 830 | kfree(gsf); |
833 | if (gsf) | ||
834 | kfree(gsf); | ||
835 | break; | 831 | break; |
836 | } | 832 | } |
837 | case IP_ROUTER_ALERT: | 833 | case IP_ROUTER_ALERT: |
diff --git a/net/ipv4/ipvs/ip_vs_app.c b/net/ipv4/ipvs/ip_vs_app.c index fc6f95aaa969..d7eb680101c2 100644 --- a/net/ipv4/ipvs/ip_vs_app.c +++ b/net/ipv4/ipvs/ip_vs_app.c | |||
@@ -110,8 +110,7 @@ ip_vs_app_inc_new(struct ip_vs_app *app, __u16 proto, __u16 port) | |||
110 | return 0; | 110 | return 0; |
111 | 111 | ||
112 | out: | 112 | out: |
113 | if (inc->timeout_table) | 113 | kfree(inc->timeout_table); |
114 | kfree(inc->timeout_table); | ||
115 | kfree(inc); | 114 | kfree(inc); |
116 | return ret; | 115 | return ret; |
117 | } | 116 | } |
@@ -136,8 +135,7 @@ ip_vs_app_inc_release(struct ip_vs_app *inc) | |||
136 | 135 | ||
137 | list_del(&inc->a_list); | 136 | list_del(&inc->a_list); |
138 | 137 | ||
139 | if (inc->timeout_table != NULL) | 138 | kfree(inc->timeout_table); |
140 | kfree(inc->timeout_table); | ||
141 | kfree(inc); | 139 | kfree(inc); |
142 | } | 140 | } |
143 | 141 | ||
diff --git a/net/ipv4/multipath_wrandom.c b/net/ipv4/multipath_wrandom.c index bd7d75b6abe0..d34a9fa608e0 100644 --- a/net/ipv4/multipath_wrandom.c +++ b/net/ipv4/multipath_wrandom.c | |||
@@ -207,16 +207,12 @@ static void wrandom_select_route(const struct flowi *flp, | |||
207 | decision = mpc->rt; | 207 | decision = mpc->rt; |
208 | 208 | ||
209 | last_power = mpc->power; | 209 | last_power = mpc->power; |
210 | if (last_mpc) | 210 | kfree(last_mpc); |
211 | kfree(last_mpc); | ||
212 | |||
213 | last_mpc = mpc; | 211 | last_mpc = mpc; |
214 | } | 212 | } |
215 | 213 | ||
216 | if (last_mpc) { | 214 | /* concurrent __multipath_flush may lead to !last_mpc */ |
217 | /* concurrent __multipath_flush may lead to !last_mpc */ | 215 | kfree(last_mpc); |
218 | kfree(last_mpc); | ||
219 | } | ||
220 | 216 | ||
221 | decision->u.dst.__use++; | 217 | decision->u.dst.__use++; |
222 | *rp = decision; | 218 | *rp = decision; |
diff --git a/net/ipv4/netfilter/ip_nat_snmp_basic.c b/net/ipv4/netfilter/ip_nat_snmp_basic.c index 93b2c5111bb2..8acb7ed40b47 100644 --- a/net/ipv4/netfilter/ip_nat_snmp_basic.c +++ b/net/ipv4/netfilter/ip_nat_snmp_basic.c | |||
@@ -1161,8 +1161,7 @@ static int snmp_parse_mangle(unsigned char *msg, | |||
1161 | 1161 | ||
1162 | if (!snmp_object_decode(&ctx, obj)) { | 1162 | if (!snmp_object_decode(&ctx, obj)) { |
1163 | if (*obj) { | 1163 | if (*obj) { |
1164 | if ((*obj)->id) | 1164 | kfree((*obj)->id); |
1165 | kfree((*obj)->id); | ||
1166 | kfree(*obj); | 1165 | kfree(*obj); |
1167 | } | 1166 | } |
1168 | kfree(obj); | 1167 | kfree(obj); |
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 49d67cd75edd..634dabb558fd 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -823,8 +823,7 @@ out: | |||
823 | */ | 823 | */ |
824 | static void tcp_v4_reqsk_destructor(struct request_sock *req) | 824 | static void tcp_v4_reqsk_destructor(struct request_sock *req) |
825 | { | 825 | { |
826 | if (inet_rsk(req)->opt) | 826 | kfree(inet_rsk(req)->opt); |
827 | kfree(inet_rsk(req)->opt); | ||
828 | } | 827 | } |
829 | 828 | ||
830 | static inline void syn_flood_warning(struct sk_buff *skb) | 829 | static inline void syn_flood_warning(struct sk_buff *skb) |