Skip to content

Commit aecef14

Browse files
bulwahnkernel-patches-bot
authored andcommitted
bpf: propagate __user annotations properly
__htab_map_lookup_and_delete_batch() stores a user pointer in the local variable ubatch and uses that in copy_{from,to}_user(), but ubatch misses a __user annotation. So, sparse warns in the various assignments and uses of ubatch: kernel/bpf/hashtab.c:1415:24: warning: incorrect type in initializer (different address spaces) kernel/bpf/hashtab.c:1415:24: expected void *ubatch kernel/bpf/hashtab.c:1415:24: got void [noderef] __user * kernel/bpf/hashtab.c:1444:46: warning: incorrect type in argument 2 (different address spaces) kernel/bpf/hashtab.c:1444:46: expected void const [noderef] __user *from kernel/bpf/hashtab.c:1444:46: got void *ubatch kernel/bpf/hashtab.c:1608:16: warning: incorrect type in assignment (different address spaces) kernel/bpf/hashtab.c:1608:16: expected void *ubatch kernel/bpf/hashtab.c:1608:16: got void [noderef] __user * kernel/bpf/hashtab.c:1609:26: warning: incorrect type in argument 1 (different address spaces) kernel/bpf/hashtab.c:1609:26: expected void [noderef] __user *to kernel/bpf/hashtab.c:1609:26: got void *ubatch Add the __user annotation to repair this chain of propagating __user annotations in __htab_map_lookup_and_delete_batch(). Signed-off-by: Lukas Bulwahn <[email protected]> Acked-by: Yonghong Song <[email protected]>
1 parent 8a4a647 commit aecef14

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/bpf/hashtab.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1374,7 +1374,7 @@ __htab_map_lookup_and_delete_batch(struct bpf_map *map,
13741374
void *keys = NULL, *values = NULL, *value, *dst_key, *dst_val;
13751375
void __user *uvalues = u64_to_user_ptr(attr->batch.values);
13761376
void __user *ukeys = u64_to_user_ptr(attr->batch.keys);
1377-
void *ubatch = u64_to_user_ptr(attr->batch.in_batch);
1377+
void __user *ubatch = u64_to_user_ptr(attr->batch.in_batch);
13781378
u32 batch, max_count, size, bucket_size;
13791379
struct htab_elem *node_to_free = NULL;
13801380
u64 elem_map_flags, map_flags;

0 commit comments

Comments
 (0)