Bugzilla – Attachment #18473: minimal patch from Dave Jones. for bug #54207
if (copy_from_user(gsf, optval, optlen)) {
goto mc_msf_out;
}
/* numsrc >= (4G-140)/128 overflow in 32 bits */
if (gsf->gf_numsrc >= 0x1ffffff) {
err = -ENOBUFS;
if (GROUP_FILTER_SIZE(gsf->gf_numsrc) < optlen) {
err = EINVAL;
kfree(gsf);
break;
if (gsf->gf_numsrc >= 0x1ffffffU) {
retv = -ENOBUFS;
if (GROUP_FILTER_SIZE(gsf->gf_numsrc) > optlen) {
retv = -EINVAL;
retv = ip6_mc_msfilter(sk, gsf);