|
@@ -137,8 +137,8 @@ static int cp_old_stat(struct kstat *stat, struct __old_kernel_stat __user * sta
|
|
|
tmp.st_nlink = stat->nlink;
|
|
|
if (tmp.st_nlink != stat->nlink)
|
|
|
return -EOVERFLOW;
|
|
|
- SET_UID(tmp.st_uid, stat->uid);
|
|
|
- SET_GID(tmp.st_gid, stat->gid);
|
|
|
+ SET_UID(tmp.st_uid, from_kuid_munged(current_user_ns(), stat->uid));
|
|
|
+ SET_GID(tmp.st_gid, from_kgid_munged(current_user_ns(), stat->gid));
|
|
|
tmp.st_rdev = old_encode_dev(stat->rdev);
|
|
|
#if BITS_PER_LONG == 32
|
|
|
if (stat->size > MAX_NON_LFS)
|
|
@@ -215,8 +215,8 @@ static int cp_new_stat(struct kstat *stat, struct stat __user *statbuf)
|
|
|
tmp.st_nlink = stat->nlink;
|
|
|
if (tmp.st_nlink != stat->nlink)
|
|
|
return -EOVERFLOW;
|
|
|
- SET_UID(tmp.st_uid, stat->uid);
|
|
|
- SET_GID(tmp.st_gid, stat->gid);
|
|
|
+ SET_UID(tmp.st_uid, from_kuid_munged(current_user_ns(), stat->uid));
|
|
|
+ SET_GID(tmp.st_gid, from_kgid_munged(current_user_ns(), stat->gid));
|
|
|
#if BITS_PER_LONG == 32
|
|
|
tmp.st_rdev = old_encode_dev(stat->rdev);
|
|
|
#else
|
|
@@ -350,8 +350,8 @@ static long cp_new_stat64(struct kstat *stat, struct stat64 __user *statbuf)
|
|
|
#endif
|
|
|
tmp.st_mode = stat->mode;
|
|
|
tmp.st_nlink = stat->nlink;
|
|
|
- tmp.st_uid = stat->uid;
|
|
|
- tmp.st_gid = stat->gid;
|
|
|
+ tmp.st_uid = from_kuid_munged(current_user_ns(), stat->uid);
|
|
|
+ tmp.st_gid = from_kgid_munged(current_user_ns(), stat->gid);
|
|
|
tmp.st_atime = stat->atime.tv_sec;
|
|
|
tmp.st_atime_nsec = stat->atime.tv_nsec;
|
|
|
tmp.st_mtime = stat->mtime.tv_sec;
|