Hou Tao 66a7a92e4d bpf: Propagate error from htab_lock_bucket() to userspace
In __htab_map_lookup_and_delete_batch() if htab_lock_bucket() returns
-EBUSY, it will go to next bucket. Going to next bucket may not only
skip the elements in current bucket silently, but also incur
out-of-bound memory access or expose kernel memory to userspace if
current bucket_cnt is greater than bucket_size or zero.

Fixing it by stopping batch operation and returning -EBUSY when
htab_lock_bucket() fails, and the application can retry or skip the busy
batch as needed.

Fixes: 20b6cc34ea74 ("bpf: Avoid hashtab deadlock with map_locked")
Reported-by: Hao Sun <sunhao.th@gmail.com>
Signed-off-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/r/20220831042629.130006-3-houtao@huaweicloud.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
2022-08-31 14:10:01 -07:00
..
2022-05-26 17:13:43 -07:00
2022-08-08 15:16:29 -07:00
2022-05-25 16:18:27 -07:00
2021-12-02 17:25:21 +09:00
2022-07-28 12:36:35 +02:00
2022-06-02 08:55:01 -07:00
2022-08-08 14:12:19 -07:00
2022-08-03 16:29:08 -07:00
2022-08-05 09:41:12 -07:00
2022-01-11 13:08:21 -08:00
2022-06-15 19:28:44 -04:00
2021-09-08 15:32:35 -07:00
2022-05-23 17:51:12 -07:00
2022-03-15 10:32:44 +01:00
2022-08-05 09:41:12 -07:00
2021-09-08 15:32:34 -07:00
2022-08-02 19:34:45 -07:00
2021-10-14 13:29:18 +02:00
2022-02-25 09:36:06 +01:00
2022-08-06 16:38:17 -07:00
2022-08-03 19:52:08 -07:00