Date: Thu, 13 Apr 2023 20:54:30 +0200
The address of a data structure member was determined before
a corresponding null pointer check in the implementation of
the function “inode_go_dump”.
Thus avoid the risk for undefined behaviour by moving the assignment
for the variable “inode” behind the null pointer check.
This issue was detected by using the Coccinelle software.
Fixes: 27a2660f1ef944724956d92e8a312b6da0936fae ("gfs2: Dump nrpages for inodes
and their glocks")
Signed-off-by: Markus Elfring <[email protected]>
---
fs/gfs2/glops.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
index b65950e76be5..6e33c8058059 100644
--- a/fs/gfs2/glops.c
+++ b/fs/gfs2/glops.c
@@ -535,12 +535,13 @@ static void inode_go_dump(struct seq_file *seq, struct
gfs2_glock *gl,
const char *fs_id_buf)
{
struct gfs2_inode *ip = gl->gl_object;
- struct inode *inode = &ip->i_inode;
+ struct inode *inode;
unsigned long nrpages;
if (ip == NULL)
return;
+ inode = &ip->i_inode;
xa_lock_irq(&inode->i_data.i_pages);
nrpages = inode->i_data.nrpages;
xa_unlock_irq(&inode->i_data.i_pages);
--
2.40.0