Balazs Scheidler 093d282321 tproxy: fix hash locking issue when using port redirection in __inet_inherit_port()
When __inet_inherit_port() is called on a tproxy connection the wrong locks are
held for the inet_bind_bucket it is added to. __inet_inherit_port() made an
implicit assumption that the listener's port number (and thus its bind bucket).
Unfortunately, if you're using the TPROXY target to redirect skbs to a
transparent proxy that assumption is not true anymore and things break.

This patch adds code to __inet_inherit_port() so that it can handle this case
by looking up or creating a new bind bucket for the child socket and updates
callers of __inet_inherit_port() to gracefully handle __inet_inherit_port()
failing.

Reported by and original patch from Stephen Buck <stephen.buck@exinda.com>.
See http://marc.info/?t=128169268200001&r=1&w=2 for the original discussion.

Signed-off-by: KOVACS Krisztian <hidden@balabit.hu>
Signed-off-by: Patrick McHardy <kaber@trash.net>
2010-10-21 13:06:43 +02:00
..
2010-08-02 14:28:34 -05:00
2010-08-26 14:11:48 -07:00
2010-05-12 23:02:23 -07:00
2009-11-04 05:06:25 -08:00
2009-09-01 17:40:57 -07:00
2010-06-03 03:21:52 -07:00
2010-06-03 03:21:52 -07:00
2009-03-21 19:06:54 -07:00
2009-09-01 17:40:31 -07:00
2009-11-04 05:06:25 -08:00
2010-06-02 05:16:23 -07:00
2010-04-13 01:41:33 -07:00
2010-06-03 03:21:52 -07:00
2010-10-19 10:38:48 +02:00
2010-08-19 00:08:30 -07:00
2010-06-10 23:31:35 -07:00
2010-06-30 13:31:19 -07:00
2010-06-03 03:21:52 -07:00
2009-12-26 20:46:28 -08:00
2010-06-03 03:21:52 -07:00
2010-06-03 03:21:52 -07:00
2010-06-30 12:06:52 -07:00
2010-03-12 15:52:40 -08:00
2010-06-23 12:58:40 -07:00
2009-11-20 15:35:04 -08:00
2009-03-21 19:06:50 -07:00
2009-11-04 05:06:25 -08:00
2009-07-26 19:11:14 -07:00
2010-06-10 23:31:35 -07:00
2010-06-30 13:31:19 -07:00
2010-09-08 21:45:01 -07:00
2009-10-07 16:39:43 -04:00