Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tcp: Fix for race due to temporary drop of the socket lock in skb_spl…
…ice_bits. skb_splice_bits temporary drops the socket lock while iterating over the socket queue in order to break a reverse locking condition which happens with sendfile. This, however, opens a window of opportunity for tcp_collapse() to aggregate skbs and thus potentially free the current skb used in skb_splice_bits and tcp_read_sock. This patch fixes the problem by (re-)getting the same "logical skb" after the lock has been temporary dropped. Based on idea and initial patch from Evgeniy Polyakov. Signed-off-by: Octavian Purdila <[email protected]> Acked-by: Evgeniy Polyakov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
- Loading branch information