Jan Engelhardt 895493dad6 netfilter: nf_log: avoid oops in (un)bind with invalid nfproto values
commit 9ef0298a8e5730d9a46d640014c727f3b4152870 upstream.

Like many other places, we have to check that the array index is
within allowed limits, or otherwise, a kernel oops and other nastiness
can ensue when we access memory beyond the end of the array.

[ 5954.115381] BUG: unable to handle kernel paging request at 0000004000000000
[ 5954.120014] IP:  __find_logger+0x6f/0xa0
[ 5954.123979]  nf_log_bind_pf+0x2b/0x70
[ 5954.123979]  nfulnl_recv_config+0xc0/0x4a0 [nfnetlink_log]
[ 5954.123979]  nfnetlink_rcv_msg+0x12c/0x1b0 [nfnetlink]
...

The problem goes back to v2.6.30-rc1~1372~1342~31 where nf_log_bind
was decoupled from nf_log_register.

Reported-by: Miguel Di Ciurcio Filho <miguel.filho@gmail.com>,
  via irc.freenode.net/#netfilter
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-03-23 01:43:17 +08:00
..
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00
2010-08-27 11:19:57 +02:00