[SRU][Raring][PATCH 0/1] ipvs: add backup_only flag to avoid loops

Luis Henriques luis.henriques at canonical.com
Mon Oct 14 09:33:29 UTC 2013


SRU Justification:

Impact:

A NULL pointer dereferrence will occur when a user adds an IPVS
service.  This occurs since kernel 3.8.0-28.41 (Raring), after commit:

  dc7b3eb ipvs: Fix reuse connection if real server is dead

The NULL pointer occurs when accessing the ipvs variable in line 1658:

   1658 if (unlikely(sysctl_expire_nodest_conn(ipvs)) && cp && cp->dest &&
   1659 unlikely(!atomic_read(&cp->dest->weight)) && !iph.fragoffs &&
   1660 is_new_conn(skb, &iph)) {
   1661 ip_vs_conn_expire_now(cp);
   1662 __ip_vs_conn_put(cp);
   1663 cp = NULL;
   1664 }

Mainline kernel has this variable initialised earlier, with commit:

 0c12582 ipvs: add backup_only flag to avoid loops

Fix:

Apply commit 0c12582 "ipvs: add backup_only flag to avoid loops" fix
the problem.  Bug reporter has claimed success with a test kernel that
contains this commit.

Testcase:

Simply running the command:

 sudo ipvsadm -A -u 10.0.50.4:53

Will trigger the bug.

Julian Anastasov (1):
  ipvs: add backup_only flag to avoid loops

 Documentation/networking/ipvs-sysctl.txt |  7 +++++++
 include/net/ip_vs.h                      | 12 ++++++++++++
 net/netfilter/ipvs/ip_vs_core.c          | 12 ++++++++----
 net/netfilter/ipvs/ip_vs_ctl.c           |  7 +++++++
 4 files changed, 34 insertions(+), 4 deletions(-)

-- 
1.8.3.2





More information about the kernel-team mailing list