2006-10-23 07:00:18

by Amit Choudhary

[permalink] [raw]
Subject: [PATCH 2.6.19-rc2] [REVISED] net/ipv4/multipath_wrandom.c: check kmalloc() return value.

Description: Check the return value of kmalloc() in function wrandom_set_nhinfo(), in file net/ipv4/multipath_wrandom.c.

Signed-off-by: Amit Choudhary <[email protected]>

diff --git a/net/ipv4/multipath_wrandom.c b/net/ipv4/multipath_wrandom.c
index 92b0482..bcdb1f1 100644
--- a/net/ipv4/multipath_wrandom.c
+++ b/net/ipv4/multipath_wrandom.c
@@ -242,6 +242,9 @@ static void wrandom_set_nhinfo(__be32 ne
target_route = (struct multipath_route *)
kmalloc(size_rt, GFP_ATOMIC);

+ if (!target_route)
+ goto error;
+
target_route->gw = nh->nh_gw;
target_route->oif = nh->nh_oif;
memset(&target_route->rcu, 0, sizeof(struct rcu_head));
@@ -263,6 +266,9 @@ static void wrandom_set_nhinfo(__be32 ne
target_dest = (struct multipath_dest*)
kmalloc(size_dst, GFP_ATOMIC);

+ if (!target_dest)
+ goto error;
+
target_dest->nh_info = nh;
target_dest->network = network;
target_dest->netmask = netmask;
@@ -275,6 +281,7 @@ static void wrandom_set_nhinfo(__be32 ne
* we are finished
*/

+ error:
spin_unlock_bh(&state[state_idx].lock);
}


2006-10-23 07:46:31

by James Morris

[permalink] [raw]
Subject: Re: [PATCH 2.6.19-rc2] [REVISED] net/ipv4/multipath_wrandom.c: check kmalloc() return value.

On Sun, 22 Oct 2006, Amit Choudhary wrote:

> Description: Check the return value of kmalloc() in function wrandom_set_nhinfo(), in file net/ipv4/multipath_wrandom.c.
>
> Signed-off-by: Amit Choudhary <[email protected]>

Acked-by: James Morris <[email protected]>

> @@ -242,6 +242,9 @@ static void wrandom_set_nhinfo(__be32 ne
> target_route = (struct multipath_route *)
> kmalloc(size_rt, GFP_ATOMIC);

It'd be nice to see these casts removed in a future cleanup.



- James
--
James Morris
<[email protected]>

2006-10-23 11:17:58

by Patrick McHardy

[permalink] [raw]
Subject: Re: [PATCH 2.6.19-rc2] [REVISED] net/ipv4/multipath_wrandom.c: check kmalloc() return value.

diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
index 5572071..9ff5616 100644
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
@@ -124,8 +124,8 @@ config IP_ROUTE_MULTIPATH
if a matching packet arrives.

config IP_ROUTE_MULTIPATH_CACHED
- bool "IP: equal cost multipath with caching support (EXPERIMENTAL)"
- depends on IP_ROUTE_MULTIPATH
+ bool "IP: equal cost multipath with caching support (BROKEN)"
+ depends on IP_ROUTE_MULTIPATH && BROKEN
help
Normally, equal cost multipath routing is not supported by the
routing cache. If you say Y here, alternative routes are cached


Attachments:
x (591.00 B)