From: Herbert Xu <herb...@gondor.apana.org.au> Date: Mon, 13 Jul 2015 20:01:42 +0800
> When we calculate the checksum on the recv path, we store the > result in the skb as an optimisation in case we need the checksum > again down the line. > > This is in fact bogus for the MSG_PEEK case as this is done without > any locking. So multiple threads can peek and then store the result > to the same skb, potentially resulting in bogus skb states. > > This patch fixes this by only storing the result if the skb is not > shared. This preserves the optimisations for the few cases where > it can be done safely due to locking or other reasons, e.g., SIOCINQ. > > Signed-off-by: Herbert Xu <herb...@gondor.apana.org.au> Also applied and queued up for -stable, thanks! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html