提交 28dff669 编写于 作者: R Ren Zhijie 提交者: Zheng Zengkai

bpf: sched: Fix NULL pointer dereference error

hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I5QQFG
CVE: NA

--------------------------------

The pointer which is tg->css.cgroup may be NULL.
To avoid NULL pointer dereference error, add a check in
bpf_sched_entity_to_cgrpid() and bpf_sched_entity_belongs_to_cgrp().

Fixes: 628738d6 ("bpf: sched: add convenient helpers to identify sched entities")
Signed-off-by: NRen Zhijie <renzhijie2@huawei.com>
上级 db74dc13
...@@ -62,7 +62,7 @@ BPF_CALL_1(bpf_sched_entity_to_tgidpid, struct sched_entity *, se) ...@@ -62,7 +62,7 @@ BPF_CALL_1(bpf_sched_entity_to_tgidpid, struct sched_entity *, se)
BPF_CALL_1(bpf_sched_entity_to_cgrpid, struct sched_entity *, se) BPF_CALL_1(bpf_sched_entity_to_cgrpid, struct sched_entity *, se)
{ {
#ifdef CONFIG_FAIR_GROUP_SCHED #ifdef CONFIG_FAIR_GROUP_SCHED
if (!entity_is_task(se)) if (!entity_is_task(se) && se->my_q->tg->css.cgroup)
return cgroup_id(se->my_q->tg->css.cgroup); return cgroup_id(se->my_q->tg->css.cgroup);
#endif #endif
return (u64) -1; return (u64) -1;
...@@ -82,9 +82,11 @@ BPF_CALL_2(bpf_sched_entity_belongs_to_cgrp, struct sched_entity *, se, ...@@ -82,9 +82,11 @@ BPF_CALL_2(bpf_sched_entity_belongs_to_cgrp, struct sched_entity *, se,
cgrp = se->my_q->tg->css.cgroup; cgrp = se->my_q->tg->css.cgroup;
#endif #endif
if (cgrp) {
for (level = cgrp->level; level; level--) for (level = cgrp->level; level; level--)
if (cgrp->ancestor_ids[level] == cgrpid) if (cgrp->ancestor_ids[level] == cgrpid)
return 1; return 1;
}
#endif #endif
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册