diff options
author | Alexander Aring <aahringo@redhat.com> | 2022-10-27 23:45:14 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-03-17 10:50:18 +0300 |
commit | 8885e12aa107f1aa825e570cdcf8e53f9882d488 (patch) | |
tree | f0426065e82c22e2d5c2f39966f3a68125156554 /fs/dlm | |
parent | cb2849caad029fde6142de956db6743644c5b660 (diff) | |
download | linux-8885e12aa107f1aa825e570cdcf8e53f9882d488.tar.xz |
fs: dlm: use packet in dlm_mhandle
[ Upstream commit 5b787667e87a373a2f8f70e6be2b5d99c408462f ]
To allow more than just dereferencing the inner header we directly point
to the inner dlm packet which allows us to dereference the header, rcom
or message structure.
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Stable-dep-of: 724b6bab0d75 ("fs: dlm: fix use after free in midcomms commit")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'fs/dlm')
-rw-r--r-- | fs/dlm/midcomms.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/dlm/midcomms.c b/fs/dlm/midcomms.c index 095f2005fb62..4a8721ab9f14 100644 --- a/fs/dlm/midcomms.c +++ b/fs/dlm/midcomms.c @@ -194,7 +194,7 @@ struct midcomms_node { }; struct dlm_mhandle { - const struct dlm_header *inner_hd; + const union dlm_packet *inner_p; struct midcomms_node *node; struct dlm_opts *opts; struct dlm_msg *msg; @@ -1049,7 +1049,7 @@ static struct dlm_msg *dlm_midcomms_get_msg_3_2(struct dlm_mhandle *mh, int node dlm_fill_opts_header(opts, len, mh->seq); *ppc += sizeof(*opts); - mh->inner_hd = (const struct dlm_header *)*ppc; + mh->inner_p = (const union dlm_packet *)*ppc; return msg; } @@ -1127,7 +1127,7 @@ err: static void dlm_midcomms_commit_msg_3_2(struct dlm_mhandle *mh) { /* nexthdr chain for fast lookup */ - mh->opts->o_nextcmd = mh->inner_hd->h_cmd; + mh->opts->o_nextcmd = mh->inner_p->header.h_cmd; mh->committed = true; dlm_lowcomms_commit_msg(mh->msg); } |