| From 0b0b4e031aa43dff7a0de9d35d9efe20cc60a32f Mon Sep 17 00:00:00 2001 |
| From: Wei Yongjun <yongjun_wei@trendmicro.com.cn> |
| Date: Thu, 20 Sep 2012 18:29:56 +0000 |
| Subject: ipv6: fix return value check in fib6_add() |
| |
| |
| From: Wei Yongjun <yongjun_wei@trendmicro.com.cn> |
| |
| [ Upstream commit f950c0ecc78f745e490d615280e031de4dbb1306 ] |
| |
| In case of error, the function fib6_add_1() returns ERR_PTR() |
| or NULL pointer. The ERR_PTR() case check is missing in fib6_add(). |
| |
| dpatch engine is used to generated this patch. |
| (https://github.com/weiyj/dpatch) |
| |
| Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ipv6/ip6_fib.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/net/ipv6/ip6_fib.c |
| +++ b/net/ipv6/ip6_fib.c |
| @@ -818,6 +818,10 @@ int fib6_add(struct fib6_node *root, str |
| offsetof(struct rt6_info, rt6i_src), |
| allow_create, replace_required); |
| |
| + if (IS_ERR(sn)) { |
| + err = PTR_ERR(sn); |
| + sn = NULL; |
| + } |
| if (!sn) { |
| /* If it is failed, discard just allocated |
| root, and then (in st_failure) stale node |