mirror of
https://github.com/torvalds/linux
synced 2024-10-15 15:59:15 +00:00
capability: erase checker warnings about struct __user_cap_data_struct
Currently Sparse warns the following when compiling kernel/capability.c: kernel/capability.c:191:35: warning: incorrect type in argument 2 (different address spaces) kernel/capability.c:191:35: expected void const *from kernel/capability.c:191:35: got struct __user_cap_data_struct [noderef] __user * kernel/capability.c:168:14: warning: dereference of noderef expression ...... (multiple noderef warnings on different locations) kernel/capability.c:244:29: warning: incorrect type in argument 1 (different address spaces) kernel/capability.c:244:29: expected void *to kernel/capability.c:244:29: got struct __user_cap_data_struct [noderef] __user ( * )[2] kernel/capability.c:247:42: warning: dereference of noderef expression ...... (multiple noderef warnings on different locations) It seems that defining `struct __user_cap_data_struct` together with `cap_user_data_t` make Sparse believe that the struct is `noderef` as well. Separate their definitions to clarify their respective attributes. Signed-off-by: GONG, Ruiqi <gongruiqi@huaweicloud.com> Acked-by: Serge Hallyn <serge@hallyn.com> [PM: wrapped long lines in the description] Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
parent
4432b50744
commit
5538213436
|
@ -41,11 +41,12 @@ typedef struct __user_cap_header_struct {
|
|||
int pid;
|
||||
} __user *cap_user_header_t;
|
||||
|
||||
typedef struct __user_cap_data_struct {
|
||||
struct __user_cap_data_struct {
|
||||
__u32 effective;
|
||||
__u32 permitted;
|
||||
__u32 inheritable;
|
||||
} __user *cap_user_data_t;
|
||||
};
|
||||
typedef struct __user_cap_data_struct __user *cap_user_data_t;
|
||||
|
||||
|
||||
#define VFS_CAP_REVISION_MASK 0xFF000000
|
||||
|
|
Loading…
Reference in a new issue