diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2021-04-22 22:08:57 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2021-04-23 23:00:55 +0200 |
commit | 51fd232b8eb2613a198b049d44688ea2422b248a (patch) | |
tree | 379b246960f57586310bb4d1cba6358ee68befc1 /daemons | |
parent | 21bdd0a3597eaa138906bc467f6749e70bc60e78 (diff) | |
download | lvm2-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')
-rw-r--r-- | daemons/lvmlockd/lvmlockd-core.c | 4 |
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)) |