diff --git a/kernel/bpf/token.c b/kernel/bpf/token.c index e85a179523f0..19660ef95ddb 100644 --- a/kernel/bpf/token.c +++ b/kernel/bpf/token.c @@ -169,8 +169,11 @@ int bpf_token_create(union bpf_attr *attr) FD_PREPARE(fdf, O_CLOEXEC, alloc_file_pseudo(inode, path.mnt, BPF_TOKEN_INODE_NAME, O_RDWR, &bpf_token_fops)); - if (fdf.err) + if (fdf.err) { + /* no file took over the inode reference */ + iput(inode); return fdf.err; + } token = kzalloc_obj(*token, GFP_USER); if (!token)