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

(-)1.58/net/ipv4/igmp.c (-4 / +4 lines)
Lines 1778-1789 int ip_mc_source(int add, int omode, str Link Here
1778
			goto done;
1778
			goto done;
1779
		rv = !0;
1779
		rv = !0;
1780
		for (i=0; i<psl->sl_count; i++) {
1780
		for (i=0; i<psl->sl_count; i++) {
1781
			rv = memcmp(&psl->sl_addr, &mreqs->imr_multiaddr,
1781
			rv = memcmp(&psl->sl_addr[i], &mreqs->imr_sourceaddr,
1782
				sizeof(__u32));
1782
				sizeof(__u32));
1783
			if (rv >= 0)
1783
			if (rv >= 0)	/* array is sorted */
1784
				break;
1784
				break;
1785
		}
1785
		}
1786
		if (!rv)	/* source not found */
1786
		if (rv)		/* source not found */
1787
			goto done;
1787
			goto done;
1788
1788
1789
		/* update the interface filter */
1789
		/* update the interface filter */
Lines 1825-1831 int ip_mc_source(int add, int omode, str Link Here
1825
	}
1825
	}
1826
	rv = 1;	/* > 0 for insert logic below if sl_count is 0 */
1826
	rv = 1;	/* > 0 for insert logic below if sl_count is 0 */
1827
	for (i=0; i<psl->sl_count; i++) {
1827
	for (i=0; i<psl->sl_count; i++) {
1828
		rv = memcmp(&psl->sl_addr, &mreqs->imr_multiaddr,
1828
		rv = memcmp(&psl->sl_addr[i], &mreqs->imr_sourceaddr,
1829
			sizeof(__u32));
1829
			sizeof(__u32));
1830
		if (rv >= 0)
1830
		if (rv >= 0)
1831
			break;
1831
			break;
(-)1.71/net/ipv6/mcast.c (-4 / +4 lines)
Lines 391-402 int ip6_mc_source(int add, int omode, st Link Here
391
			goto done;
391
			goto done;
392
		rv = !0;
392
		rv = !0;
393
		for (i=0; i<psl->sl_count; i++) {
393
		for (i=0; i<psl->sl_count; i++) {
394
			rv = memcmp(&psl->sl_addr, group,
394
			rv = memcmp(&psl->sl_addr[i], source,
395
				sizeof(struct in6_addr));
395
				sizeof(struct in6_addr));
396
			if (rv >= 0)
396
			if (rv >= 0)	/* array is sorted */
397
				break;
397
				break;
398
		}
398
		}
399
		if (!rv)	/* source not found */
399
		if (rv)		/* source not found */
400
			goto done;
400
			goto done;
401
401
402
		/* update the interface filter */
402
		/* update the interface filter */
Lines 437-443 int ip6_mc_source(int add, int omode, st Link Here
437
	}
437
	}
438
	rv = 1;	/* > 0 for insert logic below if sl_count is 0 */
438
	rv = 1;	/* > 0 for insert logic below if sl_count is 0 */
439
	for (i=0; i<psl->sl_count; i++) {
439
	for (i=0; i<psl->sl_count; i++) {
440
		rv = memcmp(&psl->sl_addr, group, sizeof(struct in6_addr));
440
		rv = memcmp(&psl->sl_addr[i], source, sizeof(struct in6_addr));
441
		if (rv >= 0)
441
		if (rv >= 0)
442
			break;
442
			break;
443
	}
443
	}

Return to bug 63895