View | Details | Raw Unified | Return to bug 54207
Collapse All | Expand All

(-)linux-2.4.22/net/ipv4/ip_sockglue.c~ (+5 lines)
Lines 760-765 Link Here
760
			if (copy_from_user(gsf, optval, optlen)) {
760
			if (copy_from_user(gsf, optval, optlen)) {
761
				goto mc_msf_out;
761
				goto mc_msf_out;
762
			}
762
			}
763
			/* numsrc >= (4G-140)/128 overflow in 32 bits */
764
			if (gsf->gf_numsrc >= 0x1ffffff) {
765
				err = -ENOBUFS;
766
				goto mc_msf_out;
767
			}
763
			if (GROUP_FILTER_SIZE(gsf->gf_numsrc) < optlen) {
768
			if (GROUP_FILTER_SIZE(gsf->gf_numsrc) < optlen) {
764
				err = EINVAL;
769
				err = EINVAL;
765
				goto mc_msf_out;
770
				goto mc_msf_out;
(-)linux-2.4.22/net/ipv6/ipv6_sockglue.c~ (+11 lines)
Lines 466-471 Link Here
466
			kfree(gsf);
466
			kfree(gsf);
467
			break;
467
			break;
468
		}
468
		}
469
		/* numsrc >= (4G-140)/128 overflow in 32 bits */
470
		if (gsf->gf_numsrc >= 0x1ffffffU) {
471
			kfree(gsf);
472
			retv = -ENOBUFS;
473
			break;
474
		}
475
		if (GROUP_FILTER_SIZE(gsf->gf_numsrc) > optlen) {
476
			kfree(gsf);
477
			retv = -EINVAL;
478
			break;
479
		}
469
		retv = ip6_mc_msfilter(sk, gsf);
480
		retv = ip6_mc_msfilter(sk, gsf);
470
		kfree(gsf);
481
		kfree(gsf);
471
482

Return to bug 54207