Sorry, nothing to see here
[mono.git] / mcs / class / System / System.Net / IPEndPoint.cs
old mode 100755 (executable)
new mode 100644 (file)
index 2e81c62..22aae68
@@ -96,23 +96,31 @@ namespace System.Net {
                                return(null);
                        }
 
-                       AddressFamily family=(AddressFamily)sockaddr[0];
+                       AddressFamily family = sockaddr.Family;
                        int port;
 
                        IPEndPoint ipe = null;
                        switch(family)
-                       {\r
-                               case AddressFamily.InterNetwork:\r
+                       {
+                               case AddressFamily.InterNetwork:
+                                       if (size < 8) {
+                                               return(null);
+                                       }
+                                       
                                        port = (((int)sockaddr[2])<<8) + (int)sockaddr[3];
                                        long address=(((long)sockaddr[7])<<24) +
                                                (((long)sockaddr[6])<<16) +
                                                (((long)sockaddr[5])<<8) +
                                                (long)sockaddr[4];
 
-                                       ipe = new IPEndPoint(address, port);\r
-                                       break;\r
-#if NET_1_1\r
-                               case AddressFamily.InterNetworkV6:\r
+                                       ipe = new IPEndPoint(address, port);
+                                       break;
+#if NET_1_1
+                               case AddressFamily.InterNetworkV6:
+                                       if (size < 28) {
+                                               return(null);
+                                       }
+                                       
                                        port    = (((int)sockaddr[2])<<8) + (int)sockaddr[3];
 
                                        /// maybe flowid ?
@@ -132,11 +140,11 @@ namespace System.Net {
                                        for(int i=0; i<8; i++)
                                                addressData[i] = (ushort)((sockaddr[8+i*2] << 8) + sockaddr[8+i*2+1]);
 
-                                       ipe = new IPEndPoint (new IPAddress(addressData, scopeId), port);\r
-                                       break;\r
-#endif\r
-                               default:\r
-                                       return null;\r
+                                       ipe = new IPEndPoint (new IPAddress(addressData, scopeId), port);
+                                       break;
+#endif
+                               default:
+                                       return null;
                        }
 
                        return(ipe);
@@ -146,8 +154,8 @@ namespace System.Net {
                        SocketAddress sockaddr = null;
 
                        switch (address.AddressFamily)
-                       {\r
-                               case AddressFamily.InterNetwork:\r
+                       {
+                               case AddressFamily.InterNetwork:
                                        // .net produces a 16 byte buffer, even though
                                        // only 8 bytes are used. I guess its just a
                                        // holdover from struct sockaddr padding.
@@ -162,9 +170,9 @@ namespace System.Net {
                                        sockaddr [5] = (byte) ((addr >> 8) & 0xff);
                                        sockaddr [6] = (byte) ((addr >> 16) & 0xff);
                                        sockaddr [7] = (byte) ((addr >> 24) & 0xff);
-                                       break;\r
-#if NET_1_1\r
-                               case AddressFamily.InterNetworkV6:\r
+                                       break;
+#if NET_1_1
+                               case AddressFamily.InterNetworkV6:
                                        sockaddr = new SocketAddress(AddressFamily.InterNetworkV6, 28);
 
                                        sockaddr [2] = (byte) ((port>>8) & 0xff);
@@ -177,9 +185,9 @@ namespace System.Net {
                                        sockaddr [24] = (byte) (address.ScopeId & 0xff);
                                        sockaddr [25] = (byte) ((address.ScopeId >> 8) & 0xff);
                                        sockaddr [26] = (byte) ((address.ScopeId >> 16) & 0xff);
-                                       sockaddr [27] = (byte) ((address.ScopeId >> 24) & 0xff);\r
-                                       break;\r
-#endif\r
+                                       sockaddr [27] = (byte) ((address.ScopeId >> 24) & 0xff);
+                                       break;
+#endif
                        }
 
                        return(sockaddr);