X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Ffs%2Funix%2Fstat_owner.cpp;fp=source%2Ffs%2Funix%2Fstat_owner.cpp;h=9c643d9cf92c3533d8f80ee4df3b4649e567e4d6;hp=1a33d74efc0d862df0cbf85f3e1bd8a4a9ff5b11;hb=30ce69b5cb05712c3a4903b0f397912119c4f1f9;hpb=122846f0881673770d88eff7d925ecf25c01b62e diff --git a/source/fs/unix/stat_owner.cpp b/source/fs/unix/stat_owner.cpp index 1a33d74..9c643d9 100644 --- a/source/fs/unix/stat_owner.cpp +++ b/source/fs/unix/stat_owner.cpp @@ -11,19 +11,29 @@ void Stat::Private::fill_owner_info(Stat::OwnerInfo &result) { char buf[1024]; - struct passwd pw; - struct passwd *owner; - if(!getpwuid_r(owner_id, &pw, buf, sizeof(buf), &owner) && owner) - result.owner = owner->pw_name; + if(owner_id!=INVALID_UID) + { + struct passwd pw; + struct passwd *owner; + if(!getpwuid_r(owner_id, &pw, buf, sizeof(buf), &owner) && owner) + result.owner = owner->pw_name; + else + result.owner = format("%d", owner_id); + } else - result.owner = format("%d", owner_id); + result.owner = "None"; - struct group gr; - struct group *group; - if(!getgrgid_r(group_id, &gr, buf, sizeof(buf), &group) && group) - result.group = group->gr_name; + if(group_id!=INVALID_GID) + { + struct group gr; + struct group *group; + if(!getgrgid_r(group_id, &gr, buf, sizeof(buf), &group) && group) + result.group = group->gr_name; + else + result.group = format("%d", group_id); + } else - result.group = format("%d", group_id); + result.group = "None"; } } // namespace FS