diff --git a/service-src/service_socket.c b/service-src/service_socket.c index fe4be199..5f320d23 100644 --- a/service-src/service_socket.c +++ b/service-src/service_socket.c @@ -318,10 +318,11 @@ try_send(struct skynet_context *ctx, struct socket_pool *p, uint32_t source, con } if (s->head) { struct write_buffer * buf = malloc(sizeof(*buf)); - buf->next = s->tail; + buf->next = NULL; buf->ptr = (char *)(msg+1); buf->buffer = (void *)msg; buf->sz = sz; + s->tail->next = buf; s->tail = buf; return 1; }