]> granicus.if.org Git - strace/commitdiff
nlattr: add UID/GID netlink attribute decoders
authorEugene Syromyatnikov <evgsyr@gmail.com>
Fri, 18 May 2018 16:06:38 +0000 (18:06 +0200)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 6 Jun 2018 15:10:37 +0000 (15:10 +0000)
* nlattr.h (DECL_NLA(uid), DECL_NLA(gid)): New declarations.
* nlattr.c (decode_nla_uid, decode_nla_gid): New functions.

nlattr.c
nlattr.h

index 83a25bd6f402a0126ce58a488c2a8505c21d216c..3484c03b9a613ebdc4b9db2a373de5305f17a843 100644 (file)
--- a/nlattr.c
+++ b/nlattr.c
@@ -239,6 +239,31 @@ decode_nla_fd(struct tcb *const tcp,
        return true;
 }
 
+bool
+decode_nla_uid(struct tcb *const tcp,
+              const kernel_ulong_t addr,
+              const unsigned int len,
+              const void *const opaque_data)
+{
+       uint32_t uid;
+
+       if (len < sizeof(uid))
+               return false;
+       else if (!umove_or_printaddr(tcp, addr, &uid))
+               printuid("", uid);
+
+       return true;
+}
+
+bool
+decode_nla_gid(struct tcb *const tcp,
+              const kernel_ulong_t addr,
+              const unsigned int len,
+              const void *const opaque_data)
+{
+       return decode_nla_uid(tcp, addr, len, opaque_data);
+}
+
 bool
 decode_nla_ifindex(struct tcb *const tcp,
               const kernel_ulong_t addr,
index a0ba2c357df88c82798909a6217e3236893656f2..10e085c4f25ebb985231101a08df7a7064abd837 100644 (file)
--- a/nlattr.h
+++ b/nlattr.h
@@ -86,6 +86,8 @@ DECL_NLA(flags);
 DECL_NLA(str);
 DECL_NLA(strn);
 DECL_NLA(fd);
+DECL_NLA(uid);
+DECL_NLA(gid);
 DECL_NLA(ifindex);
 DECL_NLA(ether_proto);
 DECL_NLA(ip_proto);