> diff --git a/mm/bpf_memcontrol.c b/mm/bpf_memcontrol.c > index d84fe6f3ed43..858eb43766ce 100644 > --- a/mm/bpf_memcontrol.c > +++ b/mm/bpf_memcontrol.c > @@ -103,6 +103,22 @@ __bpf_kfunc unsigned long bpf_mem_cgroup_usage(struct mem_cgroup *memcg) > return mem_cgroup_usage(memcg, false) * PAGE_SIZE; > } > > +/** > + * bpf_mem_cgroup_memory_events - Read memory cgroup's memory event value > + * @memcg: memory cgroup > + * @event: memory event id > + * > + * Returns current memory event count. > + */ > +__bpf_kfunc unsigned long bpf_mem_cgroup_memory_events(struct mem_cgroup *memcg, > + enum memcg_memory_event event) > +{ > + if (event >= MEMCG_NR_MEMORY_EVENTS) > + return (unsigned long)-1; Should this also check for negative values? The enum type is typically signed, so a BPF program passing a negative event value would pass this check but cause an out-of-bounds read from memcg->memory_events[]. The similar bpf_mem_cgroup_page_state() in this same file uses: if (idx < 0 || idx >= MEMCG_NR_STAT) which checks both bounds. Could the check here be changed to: if (event < 0 || event >= MEMCG_NR_MEMORY_EVENTS) to match that pattern? > + > + return atomic_long_read(&memcg->memory_events[event]); > +} [ ... ] --- AI reviewed your patch. Please fix the bug or email reply why it's not a bug. See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md CI run summary: https://github.com/kernel-patches/bpf/actions/runs/20389033088