netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] SCTP: Fix possible memory leak while process INIT chunk with AUTH paramters
@ 2008-03-20  7:09 Wei Yongjun
  2008-03-20 12:24 ` Vlad Yasevich
  0 siblings, 1 reply; 4+ messages in thread
From: Wei Yongjun @ 2008-03-20  7:09 UTC (permalink / raw)
  To: lksctp-developers, Vlad Yasevich, netdev, David Miller

While endpoint received INIT/INIT-ACK chunk with AUTH parameters, such 
as RANDOM, HMAC_ALGO, CHUNKS parameter, if those parameters appear more 
then once, memory for store those parameters will be malloc more then 
once and not free.

This patch change to used the first parameter and ignore the others.

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

--- a/net/sctp/sm_make_chunk.c	2008-02-11 17:14:05.000000000 -0500
+++ b/net/sctp/sm_make_chunk.c	2008-02-14 03:57:58.000000000 -0500
@@ -2458,6 +2458,9 @@ static int sctp_process_param(struct sct
 		if (!sctp_auth_enable)
 			goto fall_through;
 
+		if (asoc->peer.peer_random)
+			break;
+
 		/* Save peer's random parameter */
 		asoc->peer.peer_random = kmemdup(param.p,
 					    ntohs(param.p->length), gfp);
@@ -2471,6 +2474,9 @@ static int sctp_process_param(struct sct
 		if (!sctp_auth_enable)
 			goto fall_through;
 
+		if (asoc->peer.peer_hmacs) 
+			break;
+
 		/* Save peer's HMAC list */
 		asoc->peer.peer_hmacs = kmemdup(param.p,
 					    ntohs(param.p->length), gfp);
@@ -2487,6 +2493,9 @@ static int sctp_process_param(struct sct
 		if (!sctp_auth_enable)
 			goto fall_through;
 
+		if (asoc->peer.peer_chunks)
+			break;
+
 		asoc->peer.peer_chunks = kmemdup(param.p,
 					    ntohs(param.p->length), gfp);
 		if (!asoc->peer.peer_chunks)




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-03-25 13:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-20  7:09 [PATCH] SCTP: Fix possible memory leak while process INIT chunk with AUTH paramters Wei Yongjun
2008-03-20 12:24 ` Vlad Yasevich
2008-03-21  2:16   ` Wei Yongjun
2008-03-25 13:03     ` Vlad Yasevich

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).