Thread (3 messages) 3 messages, 2 authors, 2019-05-17

Re: [PATCH] Add UNIX_DIAG_UID to Netlink UNIX socket diagnostics.

From: Andy Lutomirski <luto@kernel.org>
Date: 2019-05-17 04:59:19
Also in: lkml, netdev

quoted hunk ↗ jump to hunk
On May 16, 2019, at 8:25 PM, Felipe [off-list ref] wrote:

Author: Felipe Gasper [off-list ref]
Date:   Thu May 16 12:16:53 2019 -0500

   Add UNIX_DIAG_UID to Netlink UNIX socket diagnostics.

   This adds the ability for Netlink to report a socket’s UID along with the
   other UNIX socket diagnostic information that is already available. This will
   allow diagnostic tools greater insight into which users control which socket.

   Signed-off-by: Felipe Gasper [off-list ref]
diff --git a/include/uapi/linux/unix_diag.h b/include/uapi/linux/unix_diag.h
index 5c502fd..a198857 100644
--- a/include/uapi/linux/unix_diag.h
+++ b/include/uapi/linux/unix_diag.h
@@ -20,6 +20,7 @@ struct unix_diag_req {
#define UDIAG_SHOW_ICONS    0x00000008    /* show pending connections */
#define UDIAG_SHOW_RQLEN    0x00000010    /* show skb receive queue len */
#define UDIAG_SHOW_MEMINFO    0x00000020    /* show memory info of a socket */
+#define UDIAG_SHOW_UID        0x00000040    /* show socket's UID */

struct unix_diag_msg {
   __u8    udiag_family;
@@ -40,6 +41,7 @@ enum {
   UNIX_DIAG_RQLEN,
   UNIX_DIAG_MEMINFO,
   UNIX_DIAG_SHUTDOWN,
+    UNIX_DIAG_UID,

   __UNIX_DIAG_MAX,
};
diff --git a/net/unix/diag.c b/net/unix/diag.c
index 3183d9b..011f56c 100644
--- a/net/unix/diag.c
+++ b/net/unix/diag.c
@@ -110,6 +110,11 @@ static int sk_diag_show_rqlen(struct sock *sk, struct sk_buff *nlskb)
   return nla_put(nlskb, UNIX_DIAG_RQLEN, sizeof(rql), &rql);
}

+static int sk_diag_dump_uid(struct sock *sk, struct sk_buff *nlskb)
+{
+    return nla_put(nlskb, UNIX_DIAG_UID, sizeof(kuid_t), &(sk->sk_uid));
That type is called *k* uid_t because it’s internal to the kernel. You
probably want from_kuid_munged(), which will fix it up for an
appropriate userns.  Presumably you want sk’s netns’s userns.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help