Commit 265a9285 authored by Alexey Kuznetsov's avatar Alexey Kuznetsov Committed by David S. Miller

[NET]: Fix race condition in sk_wait_event().

It is broken, the condition is checked out of socket lock. It is
wonderful the bug survived for so long time.

[ This fixes bugzilla #6233:
  race condition in tcp_sendmsg when connection became established ]
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6f5e6b9e
...@@ -478,9 +478,9 @@ static inline void sk_add_backlog(struct sock *sk, struct sk_buff *skb) ...@@ -478,9 +478,9 @@ static inline void sk_add_backlog(struct sock *sk, struct sk_buff *skb)
rc = __condition; \ rc = __condition; \
if (!rc) { \ if (!rc) { \
*(__timeo) = schedule_timeout(*(__timeo)); \ *(__timeo) = schedule_timeout(*(__timeo)); \
rc = __condition; \
} \ } \
lock_sock(__sk); \ lock_sock(__sk); \
rc = __condition; \
rc; \ rc; \
}) })
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment