mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
selftests/bpf: Prevent allocating data larger than a page
Fix a bug in the task local data library that may allocate more than a a page for tld_data_u. This may happen when users set a too large TLD_DYN_DATA_SIZE, so check it when creating dynamic TLD fields and fix the corresponding selftest. Signed-off-by: Amery Hung <ameryhung@gmail.com> Link: https://lore.kernel.org/r/20260413190259.358442-2-ameryhung@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Alexei Starovoitov
parent
b3dde701e7
commit
36bf7beb9d
@@ -241,7 +241,8 @@ retry:
|
||||
* TLD_DYN_DATA_SIZE is allocated for tld_create_key()
|
||||
*/
|
||||
if (dyn_data) {
|
||||
if (off + TLD_ROUND_UP(size, 8) > tld_meta_p->size)
|
||||
if (off + TLD_ROUND_UP(size, 8) > tld_meta_p->size ||
|
||||
tld_meta_p->size > TLD_PAGE_SIZE - sizeof(struct tld_data_u))
|
||||
return (tld_key_t){-E2BIG};
|
||||
} else {
|
||||
if (off + TLD_ROUND_UP(size, 8) > TLD_PAGE_SIZE - sizeof(struct tld_data_u))
|
||||
|
||||
Reference in New Issue
Block a user