diff options
Diffstat (limited to 'tags/2.6.18-10/30004_nl_fib_lookup-oops.patch')
-rw-r--r-- | tags/2.6.18-10/30004_nl_fib_lookup-oops.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tags/2.6.18-10/30004_nl_fib_lookup-oops.patch b/tags/2.6.18-10/30004_nl_fib_lookup-oops.patch new file mode 100644 index 0000000..c0547fa --- /dev/null +++ b/tags/2.6.18-10/30004_nl_fib_lookup-oops.patch @@ -0,0 +1,34 @@ +From: Sergey Vlasov <vsu@altlinux.ru> +Date: Fri, 27 Apr 2007 09:18:35 +0000 (-0700) +Subject: IPV4: Fix OOPS'er added to netlink fib. +X-Git-Tag: v2.6.20.10~2 +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fstable%2Flinux-2.6.20.y.git;a=commitdiff_plain;h=6af3412cff50b9a7b12b7b9cf6f01b34fbae4624 + +IPV4: Fix OOPS'er added to netlink fib. + +[IPV4] nl_fib_lookup: Initialise res.r before fib_res_put(&res) + +When CONFIG_IP_MULTIPLE_TABLES is enabled, the code in nl_fib_lookup() +needs to initialize the res.r field before fib_res_put(&res) - unlike +fib_lookup(), a direct call to ->tb_lookup does not set this field. + +Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> +Signed-off-by: David S. Miller <davem@davemloft.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +--- + +diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c +index fa2cb8c..30aae76 100644 +--- a/net/ipv4/fib_frontend.c ++++ b/net/ipv4/fib_frontend.c +@@ -773,6 +773,10 @@ static void nl_fib_lookup(struct fib_result_nl *frn, struct fib_table *tb ) + .tos = frn->fl_tos, + .scope = frn->fl_scope } } }; + ++#ifdef CONFIG_IP_MULTIPLE_TABLES ++ res.r = NULL; ++#endif ++ + frn->err = -ENOENT; + if (tb) { + local_bh_disable(); |