Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/Mono.Posix/Mono.Unix/Syscall.cs')
-rw-r--r--mcs/class/Mono.Posix/Mono.Unix/Syscall.cs16
1 files changed, 11 insertions, 5 deletions
diff --git a/mcs/class/Mono.Posix/Mono.Unix/Syscall.cs b/mcs/class/Mono.Posix/Mono.Unix/Syscall.cs
index 0a16ec25b70..43d9f33b4af 100644
--- a/mcs/class/Mono.Posix/Mono.Unix/Syscall.cs
+++ b/mcs/class/Mono.Posix/Mono.Unix/Syscall.cs
@@ -838,7 +838,7 @@ namespace Mono.Unix {
Dirent d = (Dirent) obj;
return d.d_ino == d_ino && d.d_off == d_off &&
d.d_reclen == d_reclen && d.d_type == d_type &&
- d.d_name == d.d_name;
+ d.d_name == d_name;
}
public override string ToString ()
@@ -925,8 +925,14 @@ namespace Mono.Unix {
Group g = (Group) obj;
if (g.gr_gid != gr_gid)
return false;
- if (g.gr_gid == gr_gid && g.gr_name == g.gr_name &&
- g.gr_passwd == g.gr_passwd && g.gr_mem.Length == gr_mem.Length) {
+ if (g.gr_gid == gr_gid && g.gr_name == gr_name &&
+ g.gr_passwd == gr_passwd) {
+ if (g.gr_mem == gr_mem)
+ return true;
+ if (g.gr_mem == null || gr_mem == null)
+ return false;
+ if (g.gr_mem.Length != gr_mem.Length)
+ return false;
for (int i = 0; i < gr_mem.Length; ++i)
if (gr_mem[i] != g.gr_mem[i])
return false;
@@ -989,8 +995,8 @@ namespace Mono.Unix {
return false;
Passwd p = (Passwd) obj;
return p.pw_uid == pw_uid && p.pw_gid == pw_gid && p.pw_name == pw_name &&
- p.pw_passwd == pw_passwd && p.pw_gecos == p.pw_gecos &&
- p.pw_dir == p.pw_dir && p.pw_shell == p.pw_shell;
+ p.pw_passwd == pw_passwd && p.pw_gecos == pw_gecos &&
+ p.pw_dir == pw_dir && p.pw_shell == pw_shell;
}
// Generate string in /etc/passwd format