aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/sctp/sm_make_chunk.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 69a464f1d2b9..6eeee535e94e 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -2827,6 +2827,19 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
2827 union sctp_addr addr; 2827 union sctp_addr addr;
2828 union sctp_addr_param *addr_param; 2828 union sctp_addr_param *addr_param;
2829 2829
2830 switch (addr_param->v4.param_hdr.type) {
2831 case SCTP_PARAM_IPV6_ADDRESS:
2832 if (!asoc->peer.ipv6_address)
2833 return SCTP_ERROR_INV_PARAM;
2834 break;
2835 case SCTP_PARAM_IPV4_ADDRESS:
2836 if (!asoc->peer.ipv4_address)
2837 return SCTP_ERROR_INV_PARAM;
2838 break;
2839 default:
2840 return SCTP_ERROR_INV_PARAM;
2841 }
2842
2830 addr_param = (union sctp_addr_param *) 2843 addr_param = (union sctp_addr_param *)
2831 ((void *)asconf_param + sizeof(sctp_addip_param_t)); 2844 ((void *)asconf_param + sizeof(sctp_addip_param_t));
2832 2845