From: Christoph Paasch <redacted>
Date: Fri, 17 Aug 2012 23:35:12 +0200
quoted hunk ↗ jump to hunk
@@ -404,7 +404,7 @@ struct dst_entry *inet_csk_route_child_sock(struct sock *sk,
{
const struct inet_request_sock *ireq = inet_rsk(req);
struct inet_sock *newinet = inet_sk(newsk);
- struct ip_options_rcu *opt = ireq->opt;
+ struct ip_options_rcu *opt = rcu_dereference(newinet->inet_opt);
struct net *net = sock_net(sk);
We're not inside of a rcu_read_lock() protected section, so this access
is not legitimate. If you enabled RCU lock debugging, you would have
triggered a warning in the kernel log.