[SSI] openssi/kernel/cluster/ssi/token tokseq.c,1.10,1.11

Roger Tsang <[email protected]> Tue, 25 Jan 2011 05:51:28 +0000
Newsgroups gmane.linux.cluster.ssic.cvs
Message-ID <[email protected]>
Update of /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/token
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv23093/cluster/ssi/token

Modified Files:
      Tag: OPENSSI-FC
	tokseq.c 
Log Message:
tokseq_accept: fix memory leak if node goes down before we re-acquire ts_lock.


Index: tokseq.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/token/tokseq.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- tokseq.c	17 Dec 2009 06:43:51 -0000	1.10
+++ tokseq.c	25 Jan 2011 05:51:26 -0000	1.11
@@ -193,17 +193,23 @@
 		/* Make sure that node is still up */
 		if (tsp->ts_conns[agent].tsp_flags & TSF_DOWN) {
 			UNLOCK_COND_LOCK(&tsp->ts_lock);
+			/* free memory */
+			KMEM_SLEEP_FREE(tqp, sizeof(tqentry_t));
+			if (freefunc)
+				(*freefunc)(save);
+			else
+				KMEM_SLEEP_FREE(save, argsize);
 			return;
 		}
 		/* If we are now in sequence, since memory allocation,
 		 * free memory and run the server.
 		 */
 		if (recvd == tsp->ts_conns[agent].tsp_expect) {
+			KMEM_SLEEP_FREE(tqp, sizeof(tqentry_t));
 			if (freefunc)
 				(*freefunc)(save);
 			else
 				KMEM_SLEEP_FREE(save, argsize);
-			KMEM_SLEEP_FREE(tqp, sizeof(tqentry_t));
 			goto no_queue;
 		}
 


------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d