ext/libuv/src/unix/stream.c in libuv-2.0.12 vs ext/libuv/src/unix/stream.c in libuv-3.0.0
- old
+ new
@@ -602,10 +602,12 @@
default:
return -EINVAL;
}
+ client->flags |= UV_HANDLE_BOUND;
+
done:
/* Process queued fds */
if (server->queued_fds != NULL) {
uv__stream_queued_fds_t* queued_fds;
@@ -1122,11 +1124,12 @@
while (stream->read_cb
&& (stream->flags & UV_STREAM_READING)
&& (count-- > 0)) {
assert(stream->alloc_cb != NULL);
+ buf = uv_buf_init(NULL, 0);
stream->alloc_cb((uv_handle_t*)stream, 64 * 1024, &buf);
- if (buf.len == 0) {
+ if (buf.base == NULL || buf.len == 0) {
/* User indicates it can't or won't handle the read. */
stream->read_cb(stream, UV_ENOBUFS, &buf);
return;
}