From: Nick Alcock Date: Fri, 10 Apr 2015 23:00:04 +0000 (+0100) Subject: dtrace: no longer expose kuid_t in the userspace dtrace API X-Git-Tag: v4.1.12-111.0.20170907_2225~3^2~3^2~79 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=db319814c899e55edd1642aab6038b4a0ed63e87;p=users%2Fjedix%2Flinux-maple.git 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 --- diff --git a/dtrace/dtrace_match.c b/dtrace/dtrace_match.c index 7efd7f48abadd..b9dccfcce1002 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 53721b8ecbb5a..cf19589c88f44 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 7427f1ee3e5a3..9b9eb142dcc8e 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 {