diff options
author | Julian Anastasov <ja@ssi.bg> | 2008-04-29 06:21:23 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-29 06:21:23 -0400 |
commit | 2ad17defd596ca7e8ba782d5fc6950ee0e99513c (patch) | |
tree | fa971402d7e832c3dcfa4bb2dd401b76f5249a58 /include/net | |
parent | d69efb16891ddfa6c0b527f912a7193054d50281 (diff) |
ipvs: fix oops in backup for fwmark conn templates
Fixes bug http://bugzilla.kernel.org/show_bug.cgi?id=10556
where conn templates with protocol=IPPROTO_IP can oops backup box.
Result from ip_vs_proto_get() should be checked because
protocol value can be invalid or unsupported in backup. But
for valid message we should not fail for templates which use
IPPROTO_IP. Also, add checks to validate message limits and
connection state. Show state NONE for templates using IPPROTO_IP.
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/ip_vs.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index 56f3c94ae62..9a51ebad3f1 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h | |||
@@ -405,7 +405,8 @@ struct sk_buff; | |||
405 | struct ip_vs_protocol { | 405 | struct ip_vs_protocol { |
406 | struct ip_vs_protocol *next; | 406 | struct ip_vs_protocol *next; |
407 | char *name; | 407 | char *name; |
408 | __u16 protocol; | 408 | u16 protocol; |
409 | u16 num_states; | ||
409 | int dont_defrag; | 410 | int dont_defrag; |
410 | atomic_t appcnt; /* counter of proto app incs */ | 411 | atomic_t appcnt; /* counter of proto app incs */ |
411 | int *timeout_table; /* protocol timeout table */ | 412 | int *timeout_table; /* protocol timeout table */ |