Messages in this thread | | | Date | Mon, 21 Nov 2022 19:30:09 +0800 | Subject | Re: [PATCH bpf 1/2] bpf: Do not copy spin lock field from user in bpf_selem_alloc | From | Xu Kuohai <> |
| |
On 11/16/2022 4:07 PM, Xu Kuohai wrote: > On 11/16/2022 1:27 PM, Alexei Starovoitov wrote: >> On Mon, Nov 14, 2022 at 5:31 AM Xu Kuohai <xukuohai@huawei.com> wrote: >>> >>> bpf_selem_alloc function is used by inode_storage, sk_storage and >>> task_storage maps to set map value, for these map types, there may >>> be a spin lock in the map value, so if we use memcpy to copy the whole >>> map value from user, the spin lock field may be initialized incorrectly. >>> >>> Since the spin lock field is zeroed by kzalloc, call copy_map_value >>> instead of memcpy to skip copying the spin lock field to fix it. >>> >>> Fixes: 6ac99e8f23d4 ("bpf: Introduce bpf sk local storage") >> >> The tag is wrong. When local storage was introduced it was not >> possible to use spin_locks there. >> Pls resubmit. >> . > > No, spin_lock was introduced by d83525ca62cf ("bpf: introduce bpf_spin_lock"), > before 6ac99e8f23d4 ("bpf: Introduce bpf sk local storage"). > > To confirm this, I built a kernel image on comit 6ac99e8f23d4 ("bpf: Introduce bpf sk local storage") > and run test case posted in patch 2, a softlockup was triggered. Then I picked > this patch and tried again, nothing failed.
Hello, am I right? Or could you please give the correct fix-tag? Thanks.
| |