summaryrefslogtreecommitdiffstats
path: root/xlators/features/leases/src/leases-internal.c
diff options
context:
space:
mode:
authorSoumya Koduri <skoduri@redhat.com>2018-12-25 13:29:15 -0500
committerAmar Tumballi <amarts@redhat.com>2019-01-07 03:25:29 +0000
commita9b0003c717087ff168bc143c70559162e53e0d5 (patch)
tree808f99ceb97b58b6e522a07fb33b3a215ccc413d /xlators/features/leases/src/leases-internal.c
parent8b4822d457cd62c1525b6fbaac8668c79f3951c0 (diff)
leases: Reset lease_ctx->timer post deletion
To avoid use_after_free, reset lease_ctx->timer back to NULL after the structure has been freed. Change-Id: Icd213ec809b8af934afdb519c335a4680a1d6cdc updates: bz#1648768 Signed-off-by: Soumya Koduri <skoduri@redhat.com>
Diffstat (limited to 'xlators/features/leases/src/leases-internal.c')
-rw-r--r--xlators/features/leases/src/leases-internal.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/xlators/features/leases/src/leases-internal.c b/xlators/features/leases/src/leases-internal.c
index ba0db4f9b4a..8699b99d291 100644
--- a/xlators/features/leases/src/leases-internal.c
+++ b/xlators/features/leases/src/leases-internal.c
@@ -676,6 +676,7 @@ __remove_lease(xlator_t *this, inode_t *inode, lease_inode_ctx_t *lease_ctx,
if (lease_ctx->lease_cnt == 0 && lease_ctx->timer) {
ret = gf_tw_del_timer(priv->timer_wheel, lease_ctx->timer);
lease_ctx->recall_in_progress = _gf_false;
+ lease_ctx->timer = NULL;
}
out:
return ret;