Browse Source

2008-05-28 Rodrigo Kumpera <[email protected]>

	* sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
	Fix code to use mono_array_size_t instead of int.

	Based on patch by Luis F. Ortiz.
	Contributed under X11 license.
	http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html




svn path=/trunk/mono/; revision=104310
Rodrigo Kumpera 17 years ago
parent
commit
07f73d63ac
2 changed files with 13 additions and 3 deletions
  1. 9 0
      mono/metadata/ChangeLog
  2. 4 3
      mono/metadata/socket-io.c

+ 9 - 0
mono/metadata/ChangeLog

@@ -1,3 +1,12 @@
+2008-05-28 Rodrigo Kumpera  <[email protected]>
+
+	* sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
+	Fix code to use mono_array_size_t instead of int.
+
+	Based on patch by Luis F. Ortiz.
+	Contributed under X11 license.
+	http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
+
 2008-05-28 Rodrigo Kumpera  <[email protected]>
 
 	* icall.c: Added ves_icall_System_Array_GetLongLength and

+ 4 - 3
mono/metadata/socket-io.c

@@ -1511,6 +1511,7 @@ void ves_icall_System_Net_Sockets_Socket_Select_internal(MonoArray **sockets, gi
 	MonoClass *sock_arr_class;
 	MonoArray *socks;
 	time_t start;
+	mono_array_size_t socks_size;
 	
 	MONO_ARCH_SAVE_REGS;
 
@@ -1589,9 +1590,9 @@ void ves_icall_System_Net_Sockets_Socket_Select_internal(MonoArray **sockets, gi
 	}
 
 	sock_arr_class= ((MonoObject *)*sockets)->vtable->klass;
-	ret += 3; /* space for the NULL delimiters */
-	socks = mono_array_new_full (mono_domain_get (), sock_arr_class, (guint32*)&ret, NULL);
-	ret -= 3;
+	socks_size = ((mono_array_size_t)ret) + 3; /* space for the NULL delimiters */
+	socks = mono_array_new_full (mono_domain_get (), sock_arr_class, &socks_size, NULL);
+
 	mode = idx = 0;
 	for (i = 0; i < count && ret > 0; i++) {
 		mono_pollfd *pfd;