sctp: unbalanced rcu lock in ip_queue_xmit()
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Fri, 8 Nov 2013 10:13:55 +0000 (11:13 +0100)
committerWilly Tarreau <w@1wt.eu>
Mon, 19 May 2014 05:54:19 +0000 (07:54 +0200)
commit8663707a797e6a473c32cf08eb7597543bbdae79
tree645f35090c28c2fbc47ba85eacdd142bf11aa59c
parent8753987aa676b02e907d72713d78ff3a9de8a5ad
sctp: unbalanced rcu lock in ip_queue_xmit()

The bug was introduced in 2.6.32.61 by commit b8710128e201 ("inet: add RCU
protection to inet->opt") (it's a backport of upstream commit f6d8bd051c39).

In SCTP case, packet is already routed, hence we jump to the label
'packet_routed', but without rcu_read_lock(). After this label,
rcu_read_unlock() is called unconditionally.

Spotted-by: Guo Fengtian <fengtian.guo@6wind.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
net/ipv4/ip_output.c