summaryrefslogtreecommitdiffstats
path: root/net/ipv4/fib_frontend.c
diff options
context:
space:
mode:
authorEric W. Biederman2012-09-06 20:20:01 +0200
committerDavid S. Miller2012-09-07 20:42:05 +0200
commitdbe9a4173ea53b72b2c35d19f676a85b69f1c9fe (patch)
tree49952d501032a2bc303d1d646ec6b1f00773b266 /net/ipv4/fib_frontend.c
parentigmp: avoid drop_monitor false positives (diff)
downloadkernel-qcow2-linux-dbe9a4173ea53b72b2c35d19f676a85b69f1c9fe.tar.gz
kernel-qcow2-linux-dbe9a4173ea53b72b2c35d19f676a85b69f1c9fe.tar.xz
kernel-qcow2-linux-dbe9a4173ea53b72b2c35d19f676a85b69f1c9fe.zip
scm: Don't use struct ucred in NETLINK_CB and struct scm_cookie.
Passing uids and gids on NETLINK_CB from a process in one user namespace to a process in another user namespace can result in the wrong uid or gid being presented to userspace. Avoid that problem by passing kuids and kgids instead. - define struct scm_creds for use in scm_cookie and netlink_skb_parms that holds uid and gid information in kuid_t and kgid_t. - Modify scm_set_cred to fill out scm_creds by heand instead of using cred_to_ucred to fill out struct ucred. This conversion ensures userspace does not get incorrect uid or gid values to look at. - Modify scm_recv to convert from struct scm_creds to struct ucred before copying credential values to userspace. - Modify __scm_send to populate struct scm_creds on in the scm_cookie, instead of just copying struct ucred from userspace. - Modify netlink_sendmsg to copy scm_creds instead of struct ucred into the NETLINK_CB. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_frontend.c')
0 files changed, 0 insertions, 0 deletions