linux-sctp.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/2] SCTP: Add address type check while process paramaters
@ 2008-04-22  5:43 Wei Yongjun
  0 siblings, 0 replies; only message in thread
From: Wei Yongjun @ 2008-04-22  5:43 UTC (permalink / raw)
  To: linux-sctp

If socket is create by AF_INET type, add IPv6 address to asoc will cause 
kernel panic while packet is transmitted on that transport.

This patch add address type check before process paramaters of ASCONF 
chunk. If peer is not support this address type, return with error 
invald parameter.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>

--- a/net/sctp/sm_make_chunk.c	2008-04-18 09:00:59.000000000 -0400
+++ b/net/sctp/sm_make_chunk.c	2008-04-19 06:27:49.000000000 -0400
@@ -2826,6 +2826,19 @@ static __be16 sctp_process_asconf_param(
 	union sctp_addr	addr;
 	union sctp_addr_param *addr_param;
 
+	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;
+	}
+
 	addr_param = (union sctp_addr_param *)
 			((void *)asconf_param + sizeof(sctp_addip_param_t));
 



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-04-22  5:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-22  5:43 [PATCH 2/2] SCTP: Add address type check while process paramaters Wei Yongjun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).