An error occurred while fetching folder content.
Eric Dumazet
authored
Backport of this upstream commit into stable kernels : 89c22d8c ("net: Fix skb csum races when peeking") exposed a bug in udp stack vs MSG_PEEK support, when user provides a buffer smaller than skb payload. In this case, skb_copy_and_csum_datagram_iovec(skb, sizeof(struct udphdr), msg->msg_iov); returns -EFAULT. This bug does not happen in upstream kernels since Al Viro did a great job to replace this into : skb_copy_and_csum_datagram_msg(skb, sizeof(struct udphdr), msg); This variant is safe vs short buffers. For the time being, instead reverting Herbert Xu patch and add back skb->ip_summed invalid changes, simply store the result of udp_lib_checksum_complete() so that we avoid computing the checksum a second time, and avoid the problematic skb_copy_and_csum_datagram_iovec() call. This patch can be applied on recent kernels as it avoids a double checksumming, then backported to stable kernels as a bug fix. Change-Id: I87d77274a7ad45e18956292ca54e49518e4e30aa Tracked-On: https://jira01.devtools.intel.com/browse/AW-4805 Signed-off-by:Eric Dumazet <edumazet@google.com> Acked-by:
Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by:
David S. Miller <davem@davemloft.net> Reviewed-on: https://android.intel.com/575929 Reviewed-by:
Louis, FabienX <fabienx.louis@intel.com> Tested-by:
Louis, FabienX <fabienx.louis@intel.com> Reviewed-by:
Dubray, SimonX <simonx.dubray@intel.com> Reviewed-by:
Tasayco Loarte, VictorX <victorx.tasayco.loarte@intel.com>
Name | Last commit | Last update |
---|