From 7618628ff3c469af38d9c58840e5d0c8fde7156a Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Wed, 15 Sep 2010 04:53:34 +0000 Subject: rpc-transport.c: handle a double free * 'this->name' was getting freed in '(transport)->fini()'. Signed-off-by: Amar Tumballi Signed-off-by: Vijay Bellur BUG: 1605 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1605 --- rpc/rpc-lib/src/rpc-transport.c | 6 +++++- rpc/rpc-transport/socket/src/socket.c | 3 --- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'rpc') diff --git a/rpc/rpc-lib/src/rpc-transport.c b/rpc/rpc-lib/src/rpc-transport.c index 29f02811f..39256d242 100644 --- a/rpc/rpc-lib/src/rpc-transport.c +++ b/rpc/rpc-lib/src/rpc-transport.c @@ -1063,8 +1063,12 @@ rpc_transport_destroy (rpc_transport_t *this) if (this->fini) this->fini (this); + pthread_mutex_destroy (&this->lock); - GF_FREE (this->name); + + if (this->name) + GF_FREE (this->name); + GF_FREE (this); fail: return ret; diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c index 1d6ebc803..ca3505d73 100644 --- a/rpc/rpc-transport/socket/src/socket.c +++ b/rpc/rpc-transport/socket/src/socket.c @@ -2484,9 +2484,6 @@ fini (rpc_transport_t *this) GF_FREE (priv); } - if (this->name) - GF_FREE (this->name); - this->private = NULL; } -- cgit