Looks like WS2_ConnectEx is at fault.

It is being called with a sendBuf of NULL which results in n_iovecs and first_iovec being set to 0 resulting in a len of 0.

I see no evidence of checking for this case along that codepath.

-aric

On 3/4/11 10:47 AM, Alexandre Julliard wrote:
Aric Stewart<[email protected]>  writes:

@@ -1781,6 +1781,9 @@ static int WS2_send( int fd, struct ws2_async *wsa )
              wsa->iovec[wsa->first_iovec].iov_len -= n;
          }
      }
+    /* BSD and OS/X return EMSGSIZE if hdr.msg_iovlen is 0 */
+    else if ( hdr.msg_iovlen == 0&&  errno == EMSGSIZE)
+        ret = 0;

This should never happen. We should always have at least one iov at that
point, the callers should make sure of that.



Reply via email to