[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: David S. Miller <davem@davemloft.net>
This commit is contained in:
Alexey Kuznetsov 2006-03-17 16:05:43 -08:00 committed by David S. Miller
parent 6f5e6b9e69
commit 265a92856b

View File

@ -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; \
}) })