From 6fc7da3c529ca7c610e8172f5b02980c75597dd5 Mon Sep 17 00:00:00 2001 From: rsc Date: Thu, 19 Oct 2006 21:58:59 +0000 Subject: Fix a handful of small one-time memory leaks in vbackup, and one per-package memory leak (in writethread). --- src/libventi/conn.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/libventi/conn.c') diff --git a/src/libventi/conn.c b/src/libventi/conn.c index 990e7db2..5b6d5436 100644 --- a/src/libventi/conn.c +++ b/src/libventi/conn.c @@ -32,15 +32,19 @@ vtfreeconn(VtConn *z) { vthangup(z); qlock(&z->lk); - for(;;){ + /* + * Wait for send and recv procs to notice + * the hangup and clear out the queues. + */ + while(z->readq || z->writeq){ if(z->readq) _vtqhangup(z->readq); - else if(z->writeq) + if(z->writeq) _vtqhangup(z->writeq); - else - break; rsleep(&z->rpcfork); } packetfree(z->part); + vtfree(z->version); + vtfree(z->sid); vtfree(z); } -- cgit v1.2.3