]> git.tdb.fi Git - libs/core.git/blobdiff - source/fs/android/stat_owner.cpp
Improve robustness of resolving user/group names in Stat
[libs/core.git] / source / fs / android / stat_owner.cpp
index 45fba304e76907325247e140476fd05b8127b9d7..48823e948372ae6f237eb906656683ff9464b1de 100644 (file)
@@ -9,17 +9,27 @@ namespace FS {
 
 void Stat::Private::fill_owner_info(Stat::OwnerInfo &result)
 {
-       struct passwd *owner;
-       if((owner = getpwuid(owner_id)))
-               result.owner = owner->pw_name;
+       if(owner_id!=INVALID_UID)
+       {
+               struct passwd *owner;
+               if((owner = getpwuid(owner_id)))
+                       result.owner = owner->pw_name;
+               else
+                       result.owner = format("%d", owner_id);
+       }
        else
-               result.owner = format("%d", owner_id);
+               result.owner = "None";
 
-       struct group *group;
-       if((group = getgrgid(group_id)))
-               result.group = group->gr_name;
+       if(group_id!=INVALID_GID)
+       {
+               struct group *group;
+               if((group = getgrgid(group_id)))
+                       result.group = group->gr_name;
+               else
+                       result.group = format("%d", group_id);
+       }
        else
-               result.group = format("%d", group_id);
+               result.group = "None";
 }
 
 } // namespace FS