diff --git a/fs/hmdfs/inode.c b/fs/hmdfs/inode.c index b42ae2c730e73af7643affede3c2f5a838bacc78..0b3ec919c3e7808e1d11dcdc0c14df3ac6fc5591 100644 --- a/fs/hmdfs/inode.c +++ b/fs/hmdfs/inode.c @@ -177,6 +177,10 @@ struct inode *hmdfs_iget5_locked_merge(struct super_block *sb, hmdfs_err("Received a invalid lower inode"); return NULL; } + if (unlikely(!hmdfs_d(fst_lo_d))) { + hmdfs_err("Received a invalid fsdata"); + return NULL; + } ia.ino.ino_raw = d_inode(fst_lo_d)->i_ino; ia.ino.dev_id = hmdfs_d(fst_lo_d)->device_id; @@ -199,6 +203,10 @@ struct inode *hmdfs_iget5_locked_cloud_merge(struct super_block *sb, hmdfs_err("Received a invalid lower inode"); return NULL; } + if (unlikely(!hmdfs_d(fst_lo_d))) { + hmdfs_err("Received a invalid fsdata"); + return NULL; + } ia.ino.ino_raw = d_inode(fst_lo_d)->i_ino; ia.ino.dev_id = hmdfs_d(fst_lo_d)->device_id;