diff options
| author | Amar Tumballi <amar@gluster.com> | 2010-09-15 04:53:34 +0000 | 
|---|---|---|
| committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-09-15 03:38:34 -0700 | 
| commit | 7618628ff3c469af38d9c58840e5d0c8fde7156a (patch) | |
| tree | d71857b4b442b1c8ef32a065af4682af48611d5f | |
| parent | 3d1a0c2e3787f1c1b6cb1eb45690f36e175e983b (diff) | |
rpc-transport.c: handle a double free
* 'this->name' was getting freed in '(transport)->fini()'.
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 1605 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1605
| -rw-r--r-- | rpc/rpc-lib/src/rpc-transport.c | 6 | ||||
| -rw-r--r-- | rpc/rpc-transport/socket/src/socket.c | 3 | 
2 files changed, 5 insertions, 4 deletions
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;  }  | 
