From db319814c899e55edd1642aab6038b4a0ed63e87 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Sat, 11 Apr 2015 00:00:04 +0100 Subject: [PATCH] dtrace: no longer expose kuid_t in the userspace dtrace API The public header installed as exposed to userspace as part of the dtrace_ppriv_t.dtpp_uid member. This member (used for unprivileged tracing) is part of a facility that is not yet ported, but using a kuid_t for this is clearly wrong, and as of kernel 4.0 won't compile when used in userspace either. Fix by migrating to a uid_t and converting it to a kuid at the point of use. Signed-off-by: Nick Alcock Acked-by: Kris Van Hees --- dtrace/dtrace_match.c | 2 +- dtrace/dtrace_ptofapi.c | 2 +- dtrace/include/uapi/linux/dtrace/stability.h | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/dtrace/dtrace_match.c b/dtrace/dtrace_match.c index 7efd7f48abad..b9dccfcce100 100644 --- a/dtrace/dtrace_match.c +++ b/dtrace/dtrace_match.c @@ -46,7 +46,7 @@ int dtrace_match_priv(const dtrace_probe_t *prp, uint32_t priv, kuid_t uid) return 0; if (((ppriv & ~match) & DTRACE_PRIV_OWNER) != 0 && - !uid_eq(uid, prp->dtpr_provider->dtpv_priv.dtpp_uid)) + !uid_eq(uid, make_kuid(NULL, prp->dtpr_provider->dtpv_priv.dtpp_uid))) return 0; } diff --git a/dtrace/dtrace_ptofapi.c b/dtrace/dtrace_ptofapi.c index 53721b8ecbb5..cf19589c88f4 100644 --- a/dtrace/dtrace_ptofapi.c +++ b/dtrace/dtrace_ptofapi.c @@ -204,7 +204,7 @@ int dtrace_register(const char *name, const dtrace_pattr_t *pap, uint32_t priv, if (cr != NULL) { provider->dtpv_priv.dtpp_uid = - make_kuid(NULL, from_kuid(NULL, get_cred(cr)->uid)); + from_kuid(NULL, get_cred(cr)->uid); put_cred(cr); } diff --git a/dtrace/include/uapi/linux/dtrace/stability.h b/dtrace/include/uapi/linux/dtrace/stability.h index 7427f1ee3e5a..9b9eb142dcc8 100644 --- a/dtrace/include/uapi/linux/dtrace/stability.h +++ b/dtrace/include/uapi/linux/dtrace/stability.h @@ -32,7 +32,6 @@ * Use is subject to license terms. */ -#include #include #include @@ -45,7 +44,7 @@ typedef struct dtrace_ppriv { uint32_t dtpp_flags; /* privilege flags */ - kuid_t dtpp_uid; /* user ID */ + uid_t dtpp_uid; /* user ID */ } dtrace_ppriv_t; typedef struct dtrace_attribute { -- 2.50.1