You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As per the suggestion by @ayourtch:
Well setting zero_csum_pass to 1 is not much of a fix, is it - it rather masks the problem in the code. Also it is a change of defaults, which i would be a bit hesitant to do…
Here’s an idea, what if we rewrite that bit as follows:
if (!udp->check) {
if (zero_csum_pass) {
// do nothing
break;
}
// recalculate the IPv6 checksum before adjusting
ip6_update_csum(…)
}
// here we will have nonzero checksum, unmagic + remagic
so, if it’s UDP and the checksum is zero and we don’t pass the zero checksum, recalculate it ?
It will still be broken if we don’t have full payload since we can’t do the full calculation in this case, but should take care of other cases ?
what do you think ?
0 commit comments