ocfs2: quota_local: fix possible uninitialized-variable access in ocfs2_local_read_info()
A memory block is allocated through kmalloc(), and its return value is assigned to the pointer oinfo. However, oinfo->dqi_gqinode is not initialized but it is accessed in: iput(oinfo->dqi_gqinode); To fix this possible uninitialized-variable access, assign NULL to oinfo->dqi_gqinode, and add ocfs2_qinfo_lock_res_init() behind the assignment in ocfs2_local_read_info(). Remove ocfs2_qinfo_lock_res_init() in ocfs2_global_read_info(). Link: https://lkml.kernel.org/r/20210804031832.57154-1-islituo@gmail.com Signed-off-by: Tuo Li <islituo@gmail.com> Reported-by: TOTE Robot <oslab@tsinghua.edu.cn> Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com> Cc: Mark Fasheh <mark@fasheh.com> Cc: Joel Becker <jlbec@evilplan.org> Cc: Junxiao Bi <junxiao.bi@oracle.com> Cc: Changwei Ge <gechangwei@live.cn> Cc: Gang He <ghe@suse.com> Cc: Jun Piao <piaojun@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
2f56639446
Коммит
6c85c2c728
|
@ -357,7 +357,6 @@ int ocfs2_global_read_info(struct super_block *sb, int type)
|
|||
}
|
||||
oinfo->dqi_gi.dqi_sb = sb;
|
||||
oinfo->dqi_gi.dqi_type = type;
|
||||
ocfs2_qinfo_lock_res_init(&oinfo->dqi_gqlock, oinfo);
|
||||
oinfo->dqi_gi.dqi_entry_size = sizeof(struct ocfs2_global_disk_dqblk);
|
||||
oinfo->dqi_gi.dqi_ops = &ocfs2_global_ops;
|
||||
oinfo->dqi_gqi_bh = NULL;
|
||||
|
|
|
@ -702,6 +702,8 @@ static int ocfs2_local_read_info(struct super_block *sb, int type)
|
|||
info->dqi_priv = oinfo;
|
||||
oinfo->dqi_type = type;
|
||||
INIT_LIST_HEAD(&oinfo->dqi_chunk);
|
||||
oinfo->dqi_gqinode = NULL;
|
||||
ocfs2_qinfo_lock_res_init(&oinfo->dqi_gqlock, oinfo);
|
||||
oinfo->dqi_rec = NULL;
|
||||
oinfo->dqi_lqi_bh = NULL;
|
||||
oinfo->dqi_libh = NULL;
|
||||
|
|
Загрузка…
Ссылка в новой задаче