diff options
Diffstat (limited to 'source3/lib/sysacls.c')
-rw-r--r-- | source3/lib/sysacls.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/source3/lib/sysacls.c b/source3/lib/sysacls.c index 00d06e4a5a..22245992f5 100644 --- a/source3/lib/sysacls.c +++ b/source3/lib/sysacls.c @@ -644,7 +644,13 @@ char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p) break; case SMB_ACL_USER: - id = uidtoname(ap->a_id); + if ((pw = sys_getpwuid(ap->a_id)) == NULL) { + slprintf(idbuf, sizeof(idbuf)-1, "%ld", + (long)ap->a_id); + id = idbuf; + } else { + id = pw->pw_name; + } case SMB_ACL_USER_OBJ: tag = "user"; break; @@ -1275,7 +1281,13 @@ char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p) break; case SMB_ACL_USER: - id = uidtoname(ap->a_id); + if ((pw = sys_getpwuid(ap->a_id)) == NULL) { + slprintf(idbuf, sizeof(idbuf)-1, "%ld", + (long)ap->a_id); + id = idbuf; + } else { + id = pw->pw_name; + } case SMB_ACL_USER_OBJ: tag = "user"; break; |