summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPranith Kumar K <pkarampu@redhat.com>2015-06-13 17:33:14 +0530
committerAtin Mukherjee <amukherj@redhat.com>2015-06-18 22:16:25 -0700
commitc5c1ad0fae6701cc9350bda4e5dc6d33cdf28eca (patch)
treeb6a76c5a98d914c77a43b9d68bd0ccb0a22c7548
parentd52f95864b9f58d14a9d48a1d73b086009491278 (diff)
cluster/dht: Prevent use after free bug
Backport of http://review.gluster.org/11209 BUG: 1233042 Change-Id: If3685c9ed84a6720d8696d11773005e9786b503f Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-on: http://review.gluster.org/11305 Tested-by: Gluster Build System <jenkins@build.gluster.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
-rw-r--r--xlators/cluster/dht/src/dht-helper.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c
index ac2f794e00c..f24c62c5ecd 100644
--- a/xlators/cluster/dht/src/dht-helper.c
+++ b/xlators/cluster/dht/src/dht-helper.c
@@ -1577,6 +1577,8 @@ dht_unlock_inodelk (call_frame_t *frame, dht_lock_t **lk_array, int lk_count,
local->lock.locks[i]->domain,
&local->lock.locks[i]->loc, F_SETLK,
&flock, NULL);
+ if (!--call_cnt)
+ break;
}
return 0;
@@ -1666,7 +1668,7 @@ dht_nonblocking_inodelk (call_frame_t *frame, dht_lock_t **lk_array,
local->call_cnt = lk_count;
- for (i = 0; i < local->lock.lk_count; i++) {
+ for (i = 0; i < lk_count; i++) {
flock.l_type = local->lock.locks[i]->type;
STACK_WIND_COOKIE (lock_frame, dht_nonblocking_inodelk_cbk,