mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
packet_diag: disclose uid value
This value is disclosed via /proc/net/packet but not via netlink messages. The goal is to have the same level of information. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fdd5f43a1b
commit
626419038a
@ -32,6 +32,7 @@ enum {
|
||||
PACKET_DIAG_RX_RING,
|
||||
PACKET_DIAG_TX_RING,
|
||||
PACKET_DIAG_FANOUT,
|
||||
PACKET_DIAG_UID,
|
||||
|
||||
__PACKET_DIAG_MAX,
|
||||
};
|
||||
|
@ -125,8 +125,10 @@ static int pdiag_put_fanout(struct packet_sock *po, struct sk_buff *nlskb)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, struct packet_diag_req *req,
|
||||
u32 portid, u32 seq, u32 flags, int sk_ino)
|
||||
static int sk_diag_fill(struct sock *sk, struct sk_buff *skb,
|
||||
struct packet_diag_req *req,
|
||||
struct user_namespace *user_ns,
|
||||
u32 portid, u32 seq, u32 flags, int sk_ino)
|
||||
{
|
||||
struct nlmsghdr *nlh;
|
||||
struct packet_diag_msg *rp;
|
||||
@ -147,6 +149,11 @@ static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, struct packet_diag
|
||||
pdiag_put_info(po, skb))
|
||||
goto out_nlmsg_trim;
|
||||
|
||||
if ((req->pdiag_show & PACKET_SHOW_INFO) &&
|
||||
nla_put_u32(skb, PACKET_DIAG_UID,
|
||||
from_kuid_munged(user_ns, sock_i_uid(sk))))
|
||||
goto out_nlmsg_trim;
|
||||
|
||||
if ((req->pdiag_show & PACKET_SHOW_MCLIST) &&
|
||||
pdiag_put_mclist(po, skb))
|
||||
goto out_nlmsg_trim;
|
||||
@ -183,9 +190,11 @@ static int packet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
if (num < s_num)
|
||||
goto next;
|
||||
|
||||
if (sk_diag_fill(sk, skb, req, NETLINK_CB(cb->skb).portid,
|
||||
cb->nlh->nlmsg_seq, NLM_F_MULTI,
|
||||
sock_i_ino(sk)) < 0)
|
||||
if (sk_diag_fill(sk, skb, req,
|
||||
sk_user_ns(NETLINK_CB(cb->skb).sk),
|
||||
NETLINK_CB(cb->skb).portid,
|
||||
cb->nlh->nlmsg_seq, NLM_F_MULTI,
|
||||
sock_i_ino(sk)) < 0)
|
||||
goto done;
|
||||
next:
|
||||
num++;
|
||||
|
Loading…
Reference in New Issue
Block a user