summaryrefslogtreecommitdiffstats
path: root/xlators/protocol/server/src/server-helpers.c
diff options
context:
space:
mode:
authorAnand V. Avati <avati@amp.gluster.com>2009-04-22 03:44:01 +0530
committerAnand V. Avati <avati@amp.gluster.com>2009-04-22 13:07:22 +0530
commitcf508025fe506a507fe16ed52df74dc7e0ca7c64 (patch)
tree39fba33a5608e237d2498d43a1159fb17ae2a35c /xlators/protocol/server/src/server-helpers.c
parent8d2e5d8062361df451be7c6f748a23884f1cf315 (diff)
fd leak fix
steps: - server_finodelk uses req->volume pointer into state->volume - finodelk is queued by locks translator - c call returns from server_pollin and hdr is FREE'd - now state->volname is pointing to FREE'ed region (junk) - server_finodelk_cbk calls gf_add_locker - gf_add_locker remembers lock with junked path along with fd_ref - gf_del_locker from new server_finodelk cannot string match with junked volume thus lock is not deleted, hence fd_ref remains as a leak Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Diffstat (limited to 'xlators/protocol/server/src/server-helpers.c')
-rw-r--r--xlators/protocol/server/src/server-helpers.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/xlators/protocol/server/src/server-helpers.c b/xlators/protocol/server/src/server-helpers.c
index c7e7f32d54a..a4e0b20815b 100644
--- a/xlators/protocol/server/src/server-helpers.c
+++ b/xlators/protocol/server/src/server-helpers.c
@@ -193,6 +193,9 @@ free_state (server_state_t *state)
if (state->xattr_req)
dict_unref (state->xattr_req);
+ if (state->volume)
+ FREE (state->volume);
+
FREE (state);
}