Author: jonpryor
Date: 2006-01-15 13:29:30 -0500 (Sun, 15 Jan 2006)
New Revision: 55600
Modified:
trunk/mcs/class/Mono.Posix/Mono.Unix/ChangeLog
trunk/mcs/class/Mono.Posix/Mono.Unix/UnixGroupInfo.cs
trunk/mcs/class/Mono.Posix/Mono.Unix/UnixUserInfo.cs
Log:
* UnixUserInfo.cs: The UnixUserInfo(Native.Passwd) constructor and
ToPasswd() should clone the underlying Native.Passwd, so
that it doesn't get changed from underneath it.
* UnixGroupInfo.cs: The UnixGroupInfo(Native.Group) constructor should also
clone the provided Native.Group instance.
Modified: trunk/mcs/class/Mono.Posix/Mono.Unix/ChangeLog
===================================================================
--- trunk/mcs/class/Mono.Posix/Mono.Unix/ChangeLog 2006-01-15 18:26:17 UTC
(rev 55599)
+++ trunk/mcs/class/Mono.Posix/Mono.Unix/ChangeLog 2006-01-15 18:29:30 UTC
(rev 55600)
@@ -1,3 +1,11 @@
+2006-01-15 Jonathan Pryor <[EMAIL PROTECTED]>
+
+ * UnixUserInfo.cs: The UnixUserInfo(Native.Passwd) constructor and
+ ToPasswd() should clone the underlying Native.Passwd, so
+ that it doesn't get changed from underneath it.
+ * UnixGroupInfo.cs: The UnixGroupInfo(Native.Group) constructor should
also
+ clone the provided Native.Group instance.
+
2006-01-14 Jonathan Pryor <[EMAIL PROTECTED]>
* UnixGroupInfo.cs: ToGroup() should clone the underlying Native.Group,
so
Modified: trunk/mcs/class/Mono.Posix/Mono.Unix/UnixGroupInfo.cs
===================================================================
--- trunk/mcs/class/Mono.Posix/Mono.Unix/UnixGroupInfo.cs 2006-01-15
18:26:17 UTC (rev 55599)
+++ trunk/mcs/class/Mono.Posix/Mono.Unix/UnixGroupInfo.cs 2006-01-15
18:29:30 UTC (rev 55600)
@@ -57,9 +57,21 @@
public UnixGroupInfo (Native.Group group)
{
- this.group = group;
+ this.group = CopyGroup (group);
}
+ private static Native.Group CopyGroup (Native.Group group)
+ {
+ Native.Group g = new Native.Group ();
+
+ g.gr_gid = group.gr_gid;
+ g.gr_mem = group.gr_mem;
+ g.gr_name = group.gr_name;
+ g.gr_passwd = group.gr_passwd;
+
+ return g;
+ }
+
public string GroupName {
get {return group.gr_name;}
}
@@ -104,12 +116,7 @@
public Native.Group ToGroup ()
{
- Native.Group g = new Native.Group ();
- g.gr_gid = group.gr_gid;
- g.gr_mem = group.gr_mem;
- g.gr_name = group.gr_name;
- g.gr_passwd = group.gr_passwd;
- return g;
+ return CopyGroup (group);
}
public static UnixGroupInfo[] GetLocalGroups ()
Modified: trunk/mcs/class/Mono.Posix/Mono.Unix/UnixUserInfo.cs
===================================================================
--- trunk/mcs/class/Mono.Posix/Mono.Unix/UnixUserInfo.cs 2006-01-15
18:26:17 UTC (rev 55599)
+++ trunk/mcs/class/Mono.Posix/Mono.Unix/UnixUserInfo.cs 2006-01-15
18:29:30 UTC (rev 55600)
@@ -67,9 +67,24 @@
public UnixUserInfo (Native.Passwd passwd)
{
- this.passwd = passwd;
+ this.passwd = CopyPasswd (passwd);
}
+ private static Native.Passwd CopyPasswd (Native.Passwd pw)
+ {
+ Native.Passwd p = new Native.Passwd ();
+
+ p.pw_name = pw.pw_name;
+ p.pw_passwd = pw.pw_passwd;
+ p.pw_uid = pw.pw_uid;
+ p.pw_gid = pw.pw_gid;
+ p.pw_gecos = pw.pw_gecos;
+ p.pw_dir = pw.pw_dir;
+ p.pw_shell = pw.pw_shell;
+
+ return p;
+ }
+
public string UserName {
get {return passwd.pw_name;}
}
@@ -149,7 +164,7 @@
public Native.Passwd ToPasswd ()
{
- return passwd;
+ return CopyPasswd (passwd);
}
public static UnixUserInfo[] GetLocalUsers ()
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches