diff options
-rw-r--r-- | src/rpcb_svc_com.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c index 291421f..5bb9a44 100644 --- a/src/rpcb_svc_com.c +++ b/src/rpcb_svc_com.c @@ -1372,10 +1372,13 @@ static char * getowner(SVCXPRT *transp, char *owner, size_t ownersize) { uid_t uid; - - if (__rpc_get_local_uid(transp, &uid) < 0) - snprintf(owner, ownersize, "unknown"); - else if (uid == 0) + + if (__rpc_get_local_uid(transp, &uid) < 0) { + if (is_localroot(svc_getrpccaller(transp))) + snprintf(owner, ownersize, "superuser"); + else + snprintf(owner, ownersize, "unknown"); + } else if (uid == 0) snprintf(owner, ownersize, "superuser"); else snprintf(owner, ownersize, "%d", uid); |