summaryrefslogtreecommitdiff
path: root/daemons/lvmlockd
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2021-04-22 22:08:57 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2021-04-23 23:00:55 +0200
commit51fd232b8eb2613a198b049d44688ea2422b248a (patch)
tree379b246960f57586310bb4d1cba6358ee68befc1 /daemons/lvmlockd
parent21bdd0a3597eaa138906bc467f6749e70bc60e78 (diff)
downloadlvm2-51fd232b8eb2613a198b049d44688ea2422b248a.tar.gz
clang: avoid possible use-after-free
If the 'act' has been already processed by add_client_result() it could have been possibly release - so avoid accessin 'act->' afterward and go for next item directly.
Diffstat (limited to 'daemons/lvmlockd')
-rw-r--r--daemons/lvmlockd/lvmlockd-core.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/daemons/lvmlockd/lvmlockd-core.c b/daemons/lvmlockd/lvmlockd-core.c
index cd8485bb0..238ec718b 100644
--- a/daemons/lvmlockd/lvmlockd-core.c
+++ b/daemons/lvmlockd/lvmlockd-core.c
@@ -1800,9 +1800,7 @@ static void res_process(struct lockspace *ls, struct resource *r,
act->result = -EINVAL;
list_del(&act->list);
add_client_result(act);
- }
-
- if (act->op == LD_OP_LOCK && act->mode == LD_LK_UN) {
+ } else if (act->op == LD_OP_LOCK && act->mode == LD_LK_UN) {
rv = res_unlock(ls, r, act);
if (rv == -ENOENT && (act->flags & LD_AF_UNLOCK_CANCEL))