bpf_fd_inode_storage_lookup_elem returned NULL when getting a bad FD which caused -ENOENT in bpf_map_copy_value. EBADF is better than ENOENT for a bad FD behaviour. The patch was partially contributed by CyberArk Software, Inc. Signed-off-by: Tal Lossos <tallossos@xxxxxxxxx> --- kernel/bpf/bpf_inode_storage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/bpf/bpf_inode_storage.c b/kernel/bpf/bpf_inode_storage.c index da753721457c..0ca25e9549d8 100644 --- a/kernel/bpf/bpf_inode_storage.c +++ b/kernel/bpf/bpf_inode_storage.c @@ -109,7 +109,7 @@ static void *bpf_fd_inode_storage_lookup_elem(struct bpf_map *map, void *key) fd = *(int *)key; f = fget_raw(fd); if (!f) - return NULL; + return -EBADF; sdata = inode_storage_lookup(f->f_inode, map, true); fput(f); -- 2.27.0