diff options
| author | David S. Miller <davem@davemloft.net> | 2008-05-15 00:34:44 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-05-15 00:34:44 -0700 | 
| commit | 63fe46da9c380b3f2bbdf3765044649517cc717c (patch) | |
| tree | 9478c1aca1d692b408955aea20c9cd9a37e589c0 /net/sctp/sm_make_chunk.c | |
| parent | 99dd1a2b8347ac2ae802300b7862f6f7bcf17139 (diff) | |
| parent | 066b2118976e6e7cc50eed39e2747c75343a23c4 (diff) | |
| download | olio-linux-3.10-63fe46da9c380b3f2bbdf3765044649517cc717c.tar.xz olio-linux-3.10-63fe46da9c380b3f2bbdf3765044649517cc717c.zip  | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
	drivers/net/wireless/iwlwifi/iwl-4965-rs.c
	drivers/net/wireless/rt2x00/rt61pci.c
Diffstat (limited to 'net/sctp/sm_make_chunk.c')
| -rw-r--r-- | net/sctp/sm_make_chunk.c | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c index 81b606424e1..bbc7107c86c 100644 --- a/net/sctp/sm_make_chunk.c +++ b/net/sctp/sm_make_chunk.c @@ -2418,7 +2418,8 @@ static int sctp_process_param(struct sctp_association *asoc,  				break;  			case SCTP_PARAM_IPV6_ADDRESS: -				asoc->peer.ipv6_address = 1; +				if (PF_INET6 == asoc->base.sk->sk_family) +					asoc->peer.ipv6_address = 1;  				break;  			case SCTP_PARAM_HOST_NAME_ADDRESS: @@ -2829,6 +2830,19 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,  	addr_param = (union sctp_addr_param *)  			((void *)asconf_param + sizeof(sctp_addip_param_t)); +	switch (addr_param->v4.param_hdr.type) { +	case SCTP_PARAM_IPV6_ADDRESS: +		if (!asoc->peer.ipv6_address) +			return SCTP_ERROR_INV_PARAM; +		break; +	case SCTP_PARAM_IPV4_ADDRESS: +		if (!asoc->peer.ipv4_address) +			return SCTP_ERROR_INV_PARAM; +		break; +	default: +		return SCTP_ERROR_INV_PARAM; +	} +  	af = sctp_get_af_specific(param_type2af(addr_param->v4.param_hdr.type));  	if (unlikely(!af))  		return SCTP_ERROR_INV_PARAM;  |