wrong error number
[mono.git] / mono / metadata / socket-io.c
index 1bb44ea75b27109cee2d117fbd2f1569e6366cd4..1ef49278ea93a38c9a4cc681dd1b9c1664f91ab2 100644 (file)
@@ -1160,7 +1160,15 @@ gint32 ves_icall_System_Net_Sockets_Socket_RecvFrom_internal(SOCKET sock, MonoAr
                return(0);
        }
 
-       *sockaddr=create_object_from_sockaddr(sa, sa_size, error);
+       /* If we didn't get a socket size, then we're probably a
+        * connected connection-oriented socket and the stack hasn't
+        * returned the remote address. All we can do is return null.
+        */
+       if ( sa_size != 0 )
+               *sockaddr=create_object_from_sockaddr(sa, sa_size, error);
+       else
+               *sockaddr=NULL;
+
        g_free(sa);
        
        return(ret);